首页 > 基础资料 博客日记

泛型无界通配符的思考

2024-06-04 22:30:03基础资料围观254

这篇文章介绍了泛型无界通配符的思考,分享给大家做个参考,收藏Java资料网收获更多编程知识

起因:无界通配符<?>作为参数可以接受任意类型参数,入参的具体类型在调用方法时并不需要确定,联想到泛型方法中参数的类型是在调用方法时被定义,实践探究二者异同。

public class Generic01 {
    public static void main(String[] args) {
        ArrayList<String> arrayList = new ArrayList<String>();
        arrayList.add("test1");
        arrayList.add("test2");
        TestGeneric aa = new TestGeneric();
        aa.getClass1(arrayList);

        aa.getClass2(arrayList);
    }
}
class TestGeneric{
    public<T> void getClass1(List<T> t){
        for (T t1 : t) {
            System.out.println(t1.getClass());
        }
    }
    public void getClass2(List<?> t){
        for (Object o : t) {
            System.out.println(o.getClass());
        }
    }
}

结论:public void aaa(List t) 方法是一个具有类型参数 T 的泛型方法,可以在方法内部具体地操作指定类型 T 的列表元素。而 public void bbb(List t) 方法使用了无界通配符 ,表示可以接受任意类型的列表参数,但方法内部无法确定具体的类型,只能将列表元素视为 Object 类型处理。因此,在方法内部对列表元素的操作受到一定限制。


文章来源:https://www.cnblogs.com/liusyuan/p/18231925
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐

标签云