public class ObjectTool {
public static void main(String[] args) {
/*
* 泛型类调用
*/
// 等号两头泛型需保持一致!
ObjectTool1<String> obj1 = new ObjectTool1<String>();
obj1.setObj("111");
obj1.printMessage("方法需与对象的类型保持一致,如该方法必须是String");
// 如obj1.printMessage(666); 会出错
String result1 = obj1.getObj();
System.out.println(result1);
ObjectTool1<Integer> obj2 = new ObjectTool1<Integer>();
obj2.setObj(222);
Integer result2 = obj2.getObj();
System.out.println(result2);
System.out.println("-------------分割线--------------");
/*
* 泛型方法调用
* 任意类型
*/
ObjectTool2 obj3 = new ObjectTool2();
obj3.printMessage("66666");
obj3.printMessage(77777);
System.out.println("----------------分割线-------------------");
/*
* 泛型接口调用
*/
MyInterfaceImpl<String> obj4 = new MyInterfaceImpl<String>();
obj4.printMessage("9999");
}
}
/*
* 泛型类
* class 类名{}
*/
class ObjectTool1 {
private T obj;
public T getObj() {
return obj;
}
public void setObj(T obj) {
this.obj = obj;
}
public void printMessage(T t) {
System.out.println(t);
}
}
/*
* 泛型方法
* public 返回值类型 方法名 (参数){}
*
*/
class ObjectTool2 {
public void printMessage(T t) {
System.out.println(t);
}
}
/*
* 泛型接口
* interface 接口名{}
* class 类名 implements 接口名 {}
*
*/
interface MyInterface {
public void printMessage(T t);
}
class MyInterfaceImpl implements MyInterface {
public void printMessage(T t) {
System.out.println(t);
}
}