我想将Integer添加到Float类型的Type safe ArrayList。
Float a = new Float(1.1);
ArrayList<Float> obj = new ArrayList<Float>();
obj.add(a);//In the obj object I want to add integer. how can I do that?
Integer b = new Integer(1);
obj.add(b);/*The method add(Float) in the type ArrayList<Float>
is not applicable for the arguments (Integer)*/
答案 0 :(得分:4)
将ArrayList的类型更改为:ArrayList<Number>
。
因为Number
是Float
和Integer
的基类。所以你可以将它们都存储在列表中。
或将您的Integer
转换为Float
值obj.add(Float.valueOf(b));
答案 1 :(得分:0)
试试这个
obj.add((float) b);
这会获得float
integer
个数字
或者
obj.add(Float.parseInt(b));
答案 2 :(得分:0)
您无法指定ArrayList
的类型:
Float a = new Float(1.1);
ArrayList<Float> obj = new ArrayList<Float>();
obj.add(a);//In the obj object i want to add integer how can i do that
Integer b = new Integer(1);
ArrayList newobj = (ArrayList) obj;
newobj.add(b);
for (Object object : newobj) {
System.out.println(object.getClass());
}
输出:
class java.lang.Float
class java.lang.Integer
或者您可以使用ArrayList<Number>
:
Float a = new Float(1.1);
ArrayList<Number> obj = new ArrayList<Number>();
obj.add(a);//In the obj object i want to add integer how can i do that
Integer b = new Integer(1);
obj.add(b);
for (Number object : obj) {
System.out.println(object.getClass());
}
输出:
class java.lang.Float
class java.lang.Integer
答案 3 :(得分:0)
怎么样?
obj.add(b.floatValue());
或使用ArrayList<Number>
。
答案 4 :(得分:0)
这是我最终添加Integer而不更改ArrayList类型的方法,但是会生成警告
public class MyArrayList{
public static void main(String[] args) {
Float a = new Float(1.1);
ArrayList<Float> obj = new ArrayList<Float>();
obj.add(a);
function1(obj);
for (Object obj2 : obj) {
System.out.println(obj2);
}
}
private static void function1(ArrayList list) {
Integer b = new Integer(1);
list.add(b);
}
}