//泛型类定义
class Generic{
T property;
Generic(T property){
this.property = property;
}
T getProperty(){
return property;
}
}
class Generic1{
T name;
A age;
P price;
Generic1(T name ,A age,P price){
this.name = name;
this.age =age;
this.price = price;
}
public A getAge() {
return age;
}
public T getName() {
return name;
}
public P getPrice() {
return price;
}
}
public static void main(String args[]) {
List nums = new ArrayList<>();
List integers = new ArrayList<>();
//Integer是Number的子类,但是List并不是List的子类,故不能直接赋值
//nums = integers; //此处编译器会报错
//但是通过通配符?List extends Number>就可以赋值了
List extends Number> numbers = new ArrayList<>();
//? extends Number定义上界为Number,所以变量numbers可以接受Number和Number的所有子类赋值
numbers = integers;
List floats = new ArrayList<>();
numbers = floats;
//在集合中使用泛型通配符,要记得PECS规则,生产者只能读取,不能写入(除了null)
numbers.add(null); //编译器不会报错
numbers.add(999); //编译器会报错
//上界通配符无法写入,但是可以正常读取
Number num = numbers.get(0);
//如果要获取的类型是Number的子类,则必须使用强制类型转换
int i = (Integer)numbers.get(0);
}
限定通配符对类型进行了限制。有两种限定通配符,一种是 extends T>它通过确保类型必须是T的子类来设定类型的上界,另一种是 super T>它通过确保类型必须是T的父类来设定类型的下界。泛型类型必须用限定内的类型来进行初始化,否则会导致编译错误。
另一方面>表示了非限定通配符,因为>可以用任意类型来替代。
泛型类型变量不能是基本的数据类型,如:int,float等。
泛型类型不能用在instanceof语句中做判断。
泛型在静态方法和静态类中的问题
public class Test2 {
public static T one; //编译报错
public static T show(T one){ //编译报错
return null;
}
public static T show1(T one){//可以正常编译
return null;
}
} ,泛型变量不能声明为静态变量,泛型变量不能在普通静态方法中使用,因为静态变量和静态方法是属于Class的,所有该类型的对象都可以直接使用,如果此时声明Test2 tStr = new Test2();Test2 tInt = new Test2();由于方法和变量是静态的,在还没有声明这两个变量之前,就可以直接使用Test2.show调用,此时编译器并不知道show方法的参数到底是String还是Integer会导致运行错误;但是可以在静态的泛型方法中使用,因为show1是被声明为泛型方法的,此处的T和类Test2的T是没有任何关系的,在调用show1方法的时候就必须指明具体的调用类型,如Test2.show1(888);那么JVM就会自动推断出此时的show1方法中的泛型类型T为Integer类型。
转自于:http://www.iteye.com/problems/23775
问:
我在开发过程中,使用hql进行查询(mysql5)使用到了mysql自带的函数find_in_set()这个函数作为匹配字符串的来讲效率非常好,但是我直接把它写在hql语句里面(from ForumMemberInfo fm,ForumArea fa where find_in_set(fm.userId,f
1、下载软件 rzsz-3.34.tar.gz。登录linux,用命令
wget http://freeware.sgi.com/source/rzsz/rzsz-3.48.tar.gz下载。
2、解压 tar zxvf rzsz-3.34.tar.gz
3、安装 cd rzsz-3.34 ; make posix 。注意:这个软件安装与常规的GNU软件不
Forwarded port
Private network
Public network
Vagrant 中一共有三种网络配置,下面我们将会详解三种网络配置各自优缺点。
端口映射(Forwarded port),顾名思义是指把宿主计算机的端口映射到虚拟机的某一个端口上,访问宿主计算机端口时,请求实际是被转发到虚拟机上指定端口的。Vagrantfile中设定语法为:
c
Given a 2D board and a word, find if the word exists in the grid.
The word can be constructed from letters of sequentially adjacent cell, where "adjacent" cells are those horizontally or ve