每次一阅读源码简单的还能看懂,一遇到泛型相关的我就开始犯迷糊了,所以把泛型重新捡起来再巩固一遍吧--

泛型:

  在程序中,如果用到了带<>的类或者接口,就要明确传入的具体引用类型

  泛型是编译时的技术,用于编译时期,运行时候,就会去除泛型

  在我们不确定操作类型的时候我们可以定义泛型

 

 

  泛型定义在类上

@Data//lombok自定生成get set
public class Generic<T> {
	

	private T p;
	
}

  

  泛型定义在方法上:需要注意的是当方法静态的时候,我们不能使用类上的泛型,如果静态方法使用泛型,必须将泛型定义在方法上

public <W> void go(W ob) {
        
        System.out.print(ob.toString());
    }

  
  public  static <T> void go(T ob) {
        
        System.out.print(ob.toString());
    }

eg:pojo转xml

public static <T> String poToXML(T pojo) {

XStream xstream =new XStream();
xstream.alias("xml", pojo.getClass());//目的是将顶部的头类标签变为xml
return xstream.toXML(pojo);
}

public static void main(String[] args) {
TextMessage text =new TextMessage();
text.setContent("cys");
text.setCreateTime(System.currentTimeMillis()/100);

String name =poToXML( text);

System.out.print(name);



}

  

   泛型接口:

public interface Generic<T> {
    

    T getname();
    
    
}

class yui implements  Generic<String>{

    @Override
    public String getname() {
        // TODO Auto-generated method stub
        return "fdf";
    }
    
    
}

 

泛型限定 ----我们可以固定泛型属于那种类型

public  static <T extends Integer>    void syu( T a) {
        
        System.out.println("a");
        
    }
//我们的的参数必须的Integer类型
public static void main(String[] args) { syu(1); }

 

posted on 2018-08-26 23:39  iscys  阅读(160)  评论(0编辑  收藏  举报