标签:imessage std 泛型方法 main rac 泛型 message demo 父类
范例:一个简单泛型案例
class Point<T>{ //此处地T可以表示任意一个引用类型,在类实例化的时候进行定义 private T x; private T y; public void setX(T x){ this.x = x; } public void setY(T y){ this.y = y; } public T getX(){ return x; } public T getY(){ return y; } } public class Test{ public static void main(String args[]){ Point<String> p = new Point<String>();//在类实例化的时候确定类型 p.setX("java"); p.setY("oracle"); System.out.println(p.getX()); System.out.println(p.getY()); } }
通配符的使用
package com.javaxuexi.hu; class Message<T>{ private T msg; public void setMsg(T msg){ this.msg = msg ; } public T getMsg(){ return msg ; } } public class TestDemo{ public static void main(String args[]){ Message<String> msg = new Message<String>(); msg.setMsg("java"); print(msg); } public static void print(Message<?> temp){ //此时问好表示通配符 System.out.println(temp.getMsg()); } }
?extends 类:设置通配符的下限 (?extends Number)表示只可以是Number类或者是其子类Integer,Double...
?super 类:设置通配符的上限 (?super String) 表示只可以是String或者是其父类Object;
泛型接口
package com.java.demo; interface IMessage<T>{ public void print(T t); } class MessageImpl<T> implements IMessage<T>{ //在子类上面继续设置泛型 public void print(T t) { System.out.println(t); } } public class TestDemo{ public static void main(String args[]){ IMessage<String> mgs = new MessageImpl<String>(); mgs.print("hello word"); } }
package com.java.demo; interface IMessage<T>{ public void print(T t); } class MessageImpl implements IMessage<String>{ //在子类上面继续设置泛型 public void print(String t) { System.out.println(t); } } public class TestDemo{ public static void main(String args[]){ IMessage<String> mgs = new MessageImpl(); mgs.print("hello word"); } }
泛型方法
package com.java.demo; public class TestDemo{ public static void main(String args[]){ System.out.println(fun("hello word")); } public static <T> T fun(T t){//泛型方法的的返回值类型有传入参数类型决定 return t; } }
标签:imessage std 泛型方法 main rac 泛型 message demo 父类
原文地址:http://www.cnblogs.com/hu1056043921/p/7346893.html