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
}
}
相关文档:
package sort;
import java.util.Random;
/**
* 排序测试类
*
* 排序算法的分类如下: 1.插入排序(直接插入排序、折半插入排序、希尔排序); 2.交换排序(冒泡泡排序、快速排序);
* 3.选择排序(直接选择排序、堆排序); 4.归并排序; 5.基数排序。
*
* 关于排序 ......
对于这个系列里的问题,每个学Java的人都应该搞懂。当然,如果只是学Java玩玩就无所谓了。如果你认为自己已经超越初学者了,却不很懂这些问题,请将你自己重归初学者行列。内容均来自于CSDN的经典老贴。
问题一:我声明了什么!
String s = "Hello world!";
许多人都做过这样的事情,但是 ......
Windows下JAVA用到的环境变量主要有3个,JAVA_HOME、CLASSPATH、PATH。
JAVA_HOME指向的是JDK的安装路径,如D:\JDK\jdk1.5.0_12,在这路径下你应该能够找到bin、lib等目录。
JAVA_HOME=D:\JDK\jdk1.5.0_15
PATH环境变量原来Windows里面就有,你只需修改一下,使他指向JDK的bin目录,这样你在控制台下面编译、执行程序时 ......
package Demo;
// 受限泛型
class Info17<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 GenericsDemo17 {
publ ......
package Demo;
// 通过泛型方法返回泛型类型
class Info27<T extends Number> { // 指定上限,只能是数字类型
private T var; // 此类型由外部决定
public T getVar() {
return this.var;
}
public void setVar(T var) {
this.var = var;
}
public String toString() { // 覆写Object类中的toStr ......