にvarags引数でのオーバーロードエラー:コンパイラエラーは、私はこのような二つの機能を持っているJavaの
なぜ2番目の機能を使用しようとしていますか?
更新:コードのコンテキスト
これは、これら二つの機能を定義するインターフェースである。
public interface MyMessageProvider {
String getMessage(String code, Object... objects);
String getMessage(Locale locale, String code, Object... objects);
}
これは、インターフェイスを実装し、またスプリングReloadableResourceBundleMessageSource
public class CustomMessageSource extends ReloadableResourceBundleMessageSource implements MyMessageProvider {
public static final String BEAN_NAME = "messageSource";
public static CustomMessageSource getInstance() {
return (CustomMessageSource) SpringApplicationContext.getBean(BEAN_NAME);
}
@Override
public String getMessage(String code, Object[] objects) {
return getMessage(getCurrentLocale(), code, objects);
}
@Override
public String getMessage(Locale locale, String code, Object... objects) {
return getMessage(code, objects, code, locale);
}
}
私はこのようなクラスでgetMessageを呼び出します:
public class MyService {
@Autowired
private CustomMessageSource messageSource;
public String createSomeMessage(){
messageSource.getMessage("online.order");
}
}
String getMessage(String code)
をインターフェイス/実装に追加することで問題を解決できます。コンパイルエラーは皆さんと同じように私には意味を与えません。しかし、私はコンパイルエラーを取得しています!
あなたのビルドは最新のものですか?同じエラーが表示される場合は、 'Project - > Clean'を実行してください。もう少し文脈では[edit]してください。上記のコードは記述されていないエラーを生成しません。 –
@MattClark、私はプロジェクトをきれいにしましたが、私は同じコンパイルエラーが発生しています。私が今までに見つけた唯一の解決策は、新しい関数 'String getMessage(String code)'を定義し、その内部の最初の関数をvaragsとしてnullで呼び出すことです。 – Arashsoft
が奇妙に見える、最初のメソッドが呼び出される必要があります、他のオーバーロードされたメソッドはありますか? – Andrew