Java 5.0 泛型之 受限泛型
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 {
public static void main(String args[]) {
Info17<Integer> i1 = new Info17<Integer>(); // 声明Integer的泛型对象
Info17<Float> i2 = new Info17<Float>(); // 声明Float的泛型对象
i1.setVar(30); // 设置整数,自动装箱
i2.setVar(30.1f); // 设置小数,自动装箱
fun(i1);
fun(i2);
}
public static void fun(Info17<? extends Number> value) { // 只能接收Number及其Number的子类
System.out.println(value);
}
}
package Demo;
// 受限泛型
class Info21<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 GenericsDemo21 {
public static void main(String args[]) {
Info21<String> i1 = new Info21<String>(); // 声明String的泛型对象
Info21<Object> i2 = new Info21<Object>(); // 声明Object的泛型对象
i1.setVar("hello");
i2.setVar(new Object());
fun(i1);
fun(i2);
}
public static void fun(Info21<? super String> value) { // 只能接收String或Object类型的泛型
System.out.println(value);
}
}
相关文档:
Java学习从入门到精通
一、 JDK (Java Development Kit)
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的J ......
对于这个系列里的问题,每个学Java的人都应该搞懂。当然,如果只是学Java玩玩就无所谓了。如果你认为自己已经超越初学者了,却不很懂这些问题,请将你自己重归初学者行列。内容均来自于CSDN的经典老贴。
问题一:我声明了什么!
String s = "Hello world!";
许多人都做过这样的事情,但是 ......
1. JAR 文件包
JAR 文件就是 Java Archive
File,顾名思意,它的应用是与 Java 息息相关的,是 Java 的一种文档格式。JAR 文件非常类似 ZIP
文件——准确的说,它就是 ZIP ......
很久没有看JAVA了,随便找了几个题,已经都忘记了。
(1)JAVA和JAVAC 命令行
javac
-classpath,设定要搜索类的路径,可以是目录,jar文件,zip文件(里面都是class文件),会覆盖掉所有在CLASSPATH里面的设定。
-sourcepath, 设定要搜索编译所需java 文件的路径,可以是目录,jar文件,zip文件(里面都是java文件) ......
在初始化一个类,生成一个实例的时候,newInstance()方法和new关键字除了一个是方法,一个是关键字外,最主要有什么区别?它们的区别在于创建对象的方式不一样,前者是使用类加载机制,后者是创建一个新类。那么为什么会有两种创建对象方式?这主要考虑到软件的可伸缩、可扩展和可重用等软件设计思想。
......