我正在创建Java(Android )中的ArrayAdapter对象(Android),它是否需要在菱形操作符内向两边添加字符串数据类型?有人能解释一下吗
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<"here">(this,android.R.layout.simple_list_item_1,numbersInChars);发布于 2020-06-30 11:04:20
不,您不需要在右边指定它。但是,如果你指定它的话,它不会造成任何伤害。请在https://docs.oracle.com/javase/tutorial/java/generics/types.html阅读更多关于钻石的信息。下面是同一页中的一个示例:
Box<Integer> integerBox = new Box<>();如您所见,Integer尚未在右侧指定。但是,如果您愿意,也可以按以下方式编写:
Box<Integer> integerBox = new Box<Integer>();发布于 2020-06-30 11:09:33
java 泛型教程包含以下关于回答问题的菱形操作符的说明:
在Java 7和更高版本中,只要编译器能够从上下文中确定或推断类型参数,就可以用空类型参数集(<>)替换调用泛型类构造函数所需的类型参数。
编译器可以确定String类型参数来调用构造函数,因为您在赋值ArrayAdapter<String> arrayAdapter = ...的左边指定了构造函数,因此不需要指定它。
https://stackoverflow.com/questions/62655831
复制相似问题