は、おそらくこれは、すでに何回も頼まれましたが、まだ私の疑問は明らかではない:文字列の可変長引数と文字列配列
:としてpublic Object getConfig(String... names) {
と私はそれを呼び出す:
私はこのようなメソッドを持っています
ケース1: configService.getConfig("str1", "str2", "str3"); // it works
ケース2:
String[] names = {"str1","str2","str3"}; // it works
configService.getConfig(names);
CASE3: しかし、私たちは文字列であるGETCONFIG(文字列、文字列[])を渡している... argsを理解として、それが
String[] names = {"str1","str2","str3"};
configService.getConfig("randomString",names);
動作しない、次の試してください私はそれが働くことを期待しました。
なぜわかりませんか?
なのでありません。ケース1またはケース2のどちらかを選択する必要があります。コンパイラはケース3を処理しません。なぜですか?推測すると、それはその重さを運ぶと認識されなかった別のケースだからです。これをサポートしているなら、なぜ 'getConfig(" "、names、" "、names)をサポートしないのですか? –
あなたの "randomString"とあなたの 'String [] names'は2つの異なるオブジェクトですが、メソッドは1つのオブジェクト、つまり文字列を取りますvarargs – DamCx
Varargsはすでに多態性メソッドで問題を引き起こしています。 – biziclop