Java 错误:使用ANT脚本时类型不兼容
我在使用ant脚本编译java代码时遇到以下错误Java 错误:使用ANT脚本时类型不兼容,java,arraylist,collections,Java,Arraylist,Collections,我在使用ant脚本编译java代码时遇到以下错误 [javac] D:\MySapce\Proj001\src\com\\process\ReportsProcess.java:2081: error: incompatible types [javac] Integer i = Collections.max(arrayList); [javac] ^ [javac] required: Integer
[javac] D:\MySapce\Proj001\src\com\\process\ReportsProcess.java:2081: error: incompatible types
[javac] Integer i = Collections.max(arrayList);
[javac] ^
[javac] required: Integer
[javac] found: Object
我怎样才能解决这个问题
错误代码部分:
if(series1!=null && series1.getData().size()>0 ){
ArrayList arrayList = new ArrayList (Arrays.asList( series1.getData().values().toArray()));
Integer i = Collections.max(arrayList);
series1MaxValue = i;
}
您使用的是原始类型的
ArrayList
:
ArrayList arrayList = new ArrayList(...);
编译器无法推断这些元素的类型;实际上,您可以将任何内容以及Integer
s放入列表中
添加将放入列表的元素类型:
ArrayList<Integer> arrayList = new ArrayList<>(...);
ArrayList ArrayList=新的ArrayList(…);
另外,有关不应使用原始类型的详细说明,请参阅《有效Java第二版》第23项(“在新代码中不要使用原始类型”)。您使用的是原始类型的
ArrayList
:
ArrayList arrayList = new ArrayList(...);
编译器无法推断这些元素的类型;实际上,您可以将任何内容以及Integer
s放入列表中
添加将放入列表的元素类型:
ArrayList<Integer> arrayList = new ArrayList<>(...);
ArrayList ArrayList=新的ArrayList(…);
另外,请参阅《有效Java第二版》第23项(“在新代码中不要使用原始类型”),以了解不应使用原始类型的详细说明。作为对象类型的
arrayList的类型是什么。
。。需要列表
。@Satya集合。max
不需要整数
。错误消息指的是返回类型,而不是参数。@Satya:返回类型是T
,这意味着如果OP要分配给整数
变量,它实际上需要是集合
参数。这似乎与Ant无关,真的吗?我希望在从命令行或IDE中编译时会出现相同的行为。arrayList
的类型是什么。。需要列表
。@Satya集合。max
不需要整数
。错误消息指的是返回类型,而不是参数。@Satya:返回类型是T
,这意味着如果OP要分配给整数
变量,它实际上需要是集合
参数。这似乎与Ant无关,真的-在从命令行或IDE中编译时,我期望有相同的行为。将ArrayList更改为整数后,我无法将上述值传递给它的显示错误。将ArrayList更改为整数后,我无法将上述值传递给它的显示错误。