Kla*_*sos 2 java autoboxing list object
List可能包含Integers和String值.在这种情况下,我应该创建对象列表吗?
List<Object> list = new ArrayList<Object>();
Run Code Online (Sandbox Code Playgroud)
如何使用List的Integer条目执行简单的算术运算?
list.add(1);
list.add("ok");
list.add(2);
Integer a = list.get(0) - list.get(2); // does not work
Run Code Online (Sandbox Code Playgroud)
您需要将Objects 强制转换为int,因为-未在Objects上定义Operator,并且Java不会自动将其解包.
Integer a = ((Integer)list.get(0)) - ((Integer)list.get(2));
Run Code Online (Sandbox Code Playgroud)
那是因为最终list.get(0);是一个Object.如果你想对它进行算术运算,你必须抛出它:
Integer a = (Integer) list.get(0) - (Integer) list.get(2);
Run Code Online (Sandbox Code Playgroud)