Java是一种静态类型的语言,因此编译器将尝试确定所有内容的类型,并确保所有内容都是类型安全的。不幸的是,静态类型推断固有地受到限制。编译器必须保守,也无法查看运行时信息。因此,即使确实如此,也无法证明某些代码是类型安全的。
运行时类型是指运行时变量的实际类型。希望作为程序员,您比编译器更了解这一点,因此,当您知道这样做是安全的时候,可以取消警告。
例如,考虑以下代码(将不会编译)
public class typetest{ public static void main(String[] args){ Object x = args; String[] y = x; System.out.println(y[0]) }}该变量
x将始终具有type
String[],但是编译器无法解决该问题。因此,在将其分配给时,需要显式的强制类型转换
y。



