对象列表.使用整数条目的操作

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)

Mat*_*ten 5

您需要将Objects 强制转换为int,因为-未在Objects上定义Operator,并且Java不会自动将其解包.

Integer a = ((Integer)list.get(0)) - ((Integer)list.get(2));
Run Code Online (Sandbox Code Playgroud)


Mil*_*eri 5

那是因为最终list.get(0);是一个Object.如果你想对它进行算术运算,你必须抛出它:

Integer a = (Integer) list.get(0) - (Integer) list.get(2);
Run Code Online (Sandbox Code Playgroud)