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都可以接收。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧