にエラー
String[] values = ...
....
Map<String, Object> map = new HashMap<>();
for (int i = 0; i < values.length; i++) {
map.put("X" + i, values[i]);
}
はIntelliJので変換された次のコードとをマッピングしますtコンパイルします。
IntelliJのは、[i]の値の私の問題があることがヒント:
Incompatible types.
Required: int
Found: java.lang.Object
コンパイラは文句:
Error:(35, 17) java: method collect in interface java.util.stream.IntStream cannot be applied to given types;
required: java.util.function.Supplier,java.util.function.ObjIntConsumer,java.util.function.BiConsumer
found: java.util.stream.Collector>
reason: cannot infer type-variable(s) R
(actual and formal argument lists differ in length)
誰もが理由を説明することはできますか?
あなたはその宣言も含めることができますか? IntelliJの提案にも、一貫性がないようです。宣言とループの間にprint 'map'ステートメントを置くだけです。 *あなたはcollect *で置き換えることを提案しません。 – nullpointer
String [] values = ... – msayag
'Collector'はプリミティブをサポートしていないと思うので、' boxed() 'はそれを修正するので、lambdaが' Object'に変換されているのかもしれません。 –