package Demo; // Java泛型无法向上转型 class Info23<T> { private T var; // 定义泛型变量 public void setVar(T var) { this.var = var; } public T getVar() { return this.var; } public String toString() { // 直接打印 return this.var.toString(); } } public class GenericsDemo23 { // 该批注的作用是给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默。 /* * @description "deprecation" 使用了不赞成使用的类或方法时的警告 * * @description "unchecked" 执行了未检查的转换时的警告,例如当使用集合时没有用泛型 (Generics) * 来指定集合保存的类型。 * * @description "fallthrough" 当 Switch 程序块直接通往下一种情况而没有 Break 时的警告。 * * @description "path" 在类路径、源文件路径等中有不存在的路径时的警告。 * * @description "serial" 当在可序列化的类上缺少 serialVersionUID 定义时的警告。 * * @description "finally" 任何 finally 子句不能正常完成时的警告。 * * @description "all" 关于以上所有情况的警告。 */ @SuppressWarnings("all") public static void main(String args[]) { Info23<String> i1 = new Info23<String>(); // 泛型类型为String Info23<Object> i2 = null; // i2 = i1; // 这句会出错 incompatible types } }