Java泛型

java泛型

  • 泛型方法及泛型类

    public class testOne<Q> {
    	private Q q;
    	public void set(Q q) {
    		this.q=q;
    	}
    	public Q get() {
    		return q;
    	}
    	public void print(Q str) {
    		System.out.println(str);
    	}
    }
    
  • 静态方法使用泛型:要在返回类型前使用定义泛型

    public class staticMethod<T> {
    	public static<T> void print(T t) {
    		System.out.println(t);
    	}
    }
    
  • 泛型接口

    public interface interf1 <P>{
    public void print(P p);
    }
    //实现接口时指明确定的数据类型
    public class interImp implements interf1<String> {
    @Override
    public void print(String p) {
    	// TODO Auto-generated method stub
    	System.out.println(p);
    }
        //继承泛型接口
        public class interImp2<P> implements interf1<P> {
    
    	@Override
    	public void print(P p) {
    		// TODO Auto-generated method stub
    		System.out.println(p);
    	}
    
    }
    }
    
  • 泛型的通配符:使用?作为通配符

    	public static void printColl(ArrayList<?> a) {
    		Iterator<?> t=a.iterator();
    		while(t.hasNext()) {
    			System.out.print(t.next());
    		}
    	}
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    	testOne<String> t1=new testOne<String>();
    	t1.print("wq");
    	t1.set("ew");
    	System.out.println(t1.get());
    	staticMethod<Integer> s=new staticMethod<Integer>();
    	s.print(520);
    	interImp<String> in=new interImp<String>();
    	in.print("wqop");
    	ArrayList<Integer> a1=new ArrayList<Integer>();
    	a1.add(1);
    	a1.add(2);
    	a1.add(3);
    	ArrayList<String> a2=new ArrayList<String>();
    	a2.add("谁");
    	a2.add("在");
    	a2.add("说话");
    	printColl(a1);
    	printColl(a2);
    }
    执行结果:
    wq
    ew
    520
    wqop
    123谁在说话
    
  • 泛型的上限:可接收该类和该类的子类,使用extend关键字

    ​ 先假设一个person类,其子类有student,

    ​ 设置上限:public static void printColl(ArrayList<? extend person> a) //?可以接收到person及student,也就是说只要继承了person的都可以接收。

  • 泛型的下限:可接收该类和该类的父类,使用super关键字

    ​ 设置下限:public static void printColl(ArrayList<? super student> a)//?可以接收到person及student

    只要父类是student都可以接收。

posted @   阿落小世界  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示