直接上代码
package test;
//类泛型
public class Test<T> {
private T t;
//构造器泛型
public Test(T t){
this.t=t;
}
//成员方法泛型,直接使用类泛型的T
public T getA(T t){
return t;
}
//成员方法泛型,使用其他的泛型E,注意语法 <E>
public <E> E getC(E e){
return e;
}
//静态方法泛型,必须使用 <E>,<T> 或其他泛型标识
public static <E> E getB(E t){
return t;
}
@Override
public String toString(){
return t.getClass().getName();
}
public static void main(String[] args) {
System.out.println(Test.getB(1111));
System.out.println(Test.getB("222"));
System.out.println(Test.getB(true));
System.out.println(Test.getB(new Object()));
Test<String>test=new Test<String>("test");
System.out.println(test);
Test<Test<String>>t=new Test<Test<String>>(test);
System.out.println(t);
}
}
运行结果:
1111
222
true
java.lang.Object@de6ced
java.lang.String
test.Test