我无法理解在使用JDK 11时与类型安全相关的以下问题。当我直接将Set.of
传递给参数时,为什么没有得到编译错误的原因能否有人解释一下:
public static void main(String[] args) {
var intSet1 = Set.of(123, 1234, 101);
var strValue = "123";
isValid(strValue, intSet1);// Compilation error (Expected behaviour)
**isValid(strValue, Set.of(123, 1234, 101));// No Compilation error**
}
static <T> boolean isValid(T value, Set<T> range) {
return range.contains(value);
}
你可以在 IdeOne.com 上运行这段代码。