首页 > 其他分享 >泛型无界通配符<?>的思考

泛型无界通配符<?>的思考

时间:2024-06-04 22:34:10浏览次数:23  
标签:List void 通配符 无界 类型 泛型 arrayList public

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

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 类型处理。因此,在方法内部对列表元素的操作受到一定限制。

标签:List,void,通配符,无界,类型,泛型,arrayList,public
From: https://www.cnblogs.com/liusyuan/p/18231925

相关文章

  • 骑行无界,勇者无限!2024COSP上海国际户外展带您畅享生活的速度与激情!
    随着夏日来临,越来越多的人选择借由“绿色骑行”去触碰一座城市的脉搏,“城市骑行”正在成为时尚潮流活动和生活休闲方式。对于一部分城市打工人来说,自行车是一种通勤的工具,骑行成为健身的新选择。在小红书里输入“骑行”,大约有280万+笔记,“骑行路线”“骑行装备”“骑行穿搭”......
  • 数据结构第四篇【再谈泛型】
    数据结构第四篇【再谈泛型】泛型泛型类的使用泛型的上界泛型方法通配符通配符上界通配符下界......
  • java中的泛型
    目录一、定义二、使用语法三、注意事项四、从泛型类派生子类情况一情况二五、泛型接口语法接口的使用一、定义class类名<泛型标识1,泛型标识2,…>{ private泛型标识1变量名;}常用的泛型标识:T,E,K,V二、使用语法类名<具体的数据类型>对象名=new类名<具体的数据类型......
  • ref和reaction的区别(以及TS中ref,computed函数会自动推断定义其泛型(一般不用自己动手))
    其次就是了解ref,reactive的区别。ref通过对象名.value来访问对象里的值,若对象里还有属性则访问其需要:对象名.value.属性名reactive则通过:对象名.属性名,来直接访问属性值其次,两者都是响应式对象。但如果对直接对reactive对象进行赋值,那么其会丢失响应性。代码示例如下:<scri......
  • Java base(1):注解、泛型、通配符、重载、重写
    注解:用于在代码中插入元数据,不会直接影响程序的执行,但可以被编译器、开发工具或运行时环境用来处理特定任务,如编译时检查、生成额外的代码、进行框架级配置等。预定义注解:java给的,例如:@Override:用于标记一个方法是重写父类的方法。自定义注解元注解:注解其他注解的注解。元数......
  • Java泛型中<? extends E>和<? super E>的区别
    <?extendsE>      <?extendsE>是UpperBound(上限)的通配符,用来限制元素的类型的上限,比如List<?extendsFruit>fruits;表示集合中的元素类型上限为Fruit类型,即只能是Fruit或者Fruit的子类,因此对于下面的赋值是合理的fruits=newArrayList<Fruit>();fruits......
  • java泛型基础
    ​ 一、泛型介绍: JDK5除了推出foreach新循环,还推出了一个新特性:泛型泛型作用:在一个类或接口的声明处指定该类中某个属性的类型。或声明方法返回值的类型或方法参数的类型  泛型也称为参数化类型。它允许我们在一个类或接口的声明处指定该类中某个属性的类型或  ......
  • 【CTF Web】CTFShow web13 Writeup(RCE+PHP+通配符)
    web131阿呆彻底呆了,阿呆拿起谷姐搜索好久,终于找到更狠的方法。解法可知flag在config.php。<?php#flaginconfig.phpinclude("config.php");if(isset($_GET['c'])){$c=$_GET['c'];if(!preg_match("/system|exec|highlight|cat|\.|......
  • geotrust通配符证书600元且赠送一个月
    GeoTrust作为国际知名的数字证书颁发机构,旗下有RapidSSL、QuickSSL等子品牌经营着各种类型的SSL数字证书,其中RapidSSL旗下的SSL数字证书都是入门级的,性价比高。审核速度也比较快,证书的适用范围也比较广泛。今天就随SSL盾小编了解GeotrustRapidSSL旗下的通配符SSL证书。1.Geot......
  • 用通配符进行过滤
    %表示任何字符出现任意次数,匹配0,1,多个字符,但是不能匹配Null找出所有以为jet开头的产品,selectprod_id,prod_namefromproductswhereprod_namelike'jet%';注意:区分大小写,不匹配‘JetPack1000’前后两端都适用,包含jetselectprod_id,prod_namefromproductswherep......