为什么Java在编译my时不会抛出任何警告TestGenerics class,考虑到String class是否final且无法扩展?
import java.util.*;
public class TestGenerics {
public void addStrings(List<? extends String> list) {
// some code here
}
}
}
Run Code Online (Sandbox Code Playgroud) Number n = 10;
int i = 10;
System.out.println(n == i);
Run Code Online (Sandbox Code Playgroud)
基于"你可以加箱然后加宽".为什么上面的代码会产生编译时错误?我的猜测是,如果我将第一个盒装到Integer并扩大到Number,结果将始终为false.在比较基元和对象时,有任何指定==运算符的规范吗?将始终尝试执行拆箱,并且必然会扩大?
这个Java类线程是安全的还是重置方法也需要同步?如果有,有人可以告诉我原因吗?
public class NamedCounter {
private int count;
public synchronized void increment() { count++; }
public synchronized int getCount() { return count; }
public void reset() { count = 0; }
}
Run Code Online (Sandbox Code Playgroud)