Java 5.0 泛型之 Java泛型无法向上转型
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
}
}
相关文档:
1. JAR 文件包
JAR 文件就是 Java Archive
File,顾名思意,它的应用是与 Java 息息相关的,是 Java 的一种文档格式。JAR 文件非常类似 ZIP
文件——准确的说,它就是 ZIP ......
package Demo;
// 普通泛型
class Point<T> { // 此处可以随便写标识符号,T是type的简称
private T var; // var的类型由T指定,即:由外部指定
public T getVar() { // 返回值的类型由外部决定
return var;
}
public void setVar(T var) { // 设置的类型也由外部决定
this.var = var;
}
}
publi ......
package Demo;
// Java泛型的嵌套设置
class Info31<T, V> { // 接收两个泛型类型
private T key;
private V value;
public Info31(T key, V value) {
this.setKey(key);
this.setValue(value);
}
public void setKey(T key) {
this.key = key;
}
public void setValue(V value) {
this. ......