java泛型中<?>和<T>区别

public static void printColl(ArrayList<?> al){
                Iterator<?> it = al.iterator();
                while(it.hasNext())
                {
                        System.out.println(it.next().toString());
                }
?和T都表示不确定的类型  但如果是T的话 函数里面可以对T进行操作 比如while里面可以这样写
T t = it.next();
System.out.println(t);

T自定义泛型和?通配符泛型。

泛型三种:
          [1]ArrayList<T> al=new ArrayList<T>();指定集合元素只能是T类型
          [2]ArrayList<?> al=new ArrayList<?>();集合元素可以是任意类型,这种没有意义,一般是方法中,只是为了说明用法
          [3]ArrayList<? extends E> al=new ArrayList<? extends E>();
            泛型的限定:
               ? extends E:接收E类型或者E的子类型。
               ?super E:接收E类型或者E的父类型。

posted @   zhjh256  阅读(2197)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2016-06-25 公司mysql数据库设计与优化培训ppt
点击右上角即可分享
微信分享提示