是否有任何风险添加原始Int而不是Int对象?

cod*_*ons 1 java list

即使我将列表设置为Long类型,我仍然可以毫无错误地执行此操作.我应该知道有什么潜在的问题吗?

long num = 12L;
List<Long> list = new ArrayList<Long>();
list.add(num)
Run Code Online (Sandbox Code Playgroud)

JB *_*zet 9

不会.原始long将自动加到Long.

可能导致问题的是反向操作:

 long foo = list.get(0);
Run Code Online (Sandbox Code Playgroud)

这会将Long解包为long,如果null存储在列表中,则会抛出NullPointerException.