Java 创建对象时是否需要为两个菱形运算符指定数据类型?
我正在用Java(Android Studio)创建ArrayAdapter对象 是否需要将字符串数据类型添加到菱形运算符的两侧?有人能解释一下吗Java 创建对象时是否需要为两个菱形运算符指定数据类型?,java,android,Java,Android,我正在用Java(Android Studio)创建ArrayAdapter对象 是否需要将字符串数据类型添加到菱形运算符的两侧?有人能解释一下吗 ArrayAdapter<String> arrayAdapter = new ArrayAdapter<"here">(this,android.R.layout.simple_list_item_1,numbersInChars); ArrayAdapter ArrayAdapter=newarray
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<"here">(this,android.R.layout.simple_list_item_1,numbersInChars);
ArrayAdapter ArrayAdapter=newarrayadapter(这是android.R.layout.simple\u list\u item\u 1,numbersInChars);
否,不需要在右侧指定。但是,如果您在那里指定,它不会造成任何伤害。请阅读更多关于钻石的信息。以下是同一页中的一个示例:
Box<Integer> integerBox = new Box<>();
不需要,您不需要在右侧指定它。但是,如果您在那里指定,它不会造成任何伤害。请阅读更多关于钻石的信息。以下是同一页中的一个示例:
Box<Integer> integerBox = new Box<>();
java包含以下关于菱形操作符的解释,可以回答您的问题:
在JavaSE7和更高版本中,只要编译器能够从上下文确定或推断类型参数,就可以用一组空的类型参数()替换调用泛型类的构造函数所需的类型参数
编译器可以确定调用构造函数的字符串类型参数,因为您在赋值的左侧指定了它ArrayAdapter ArrayAdapter=…
,因此无需指定它。java包含以下关于菱形运算符的解释,以回答您的问题:
在JavaSE7和更高版本中,只要编译器能够从上下文确定或推断类型参数,就可以用一组空的类型参数()替换调用泛型类的构造函数所需的类型参数
编译器可以确定调用构造函数的String
类型参数,因为您在赋值的左侧部分指定了它ArrayAdapter ArrayAdapter=…
,因此不需要指定它。不,不需要!谢谢你的回复。如果我们把字符串也加进去会怎么样?如果可能的话,给我分享一些信息,如果不需要的话,为什么还有。这是java 7之前要求的,现在编译器可以根据您在左侧定义的推断类型。您必须将菱形运算符放在右边,因为您使用的是泛型,没有它,java将使用原始类型。在这里阅读更多不,这是不必要的!谢谢你的回复。如果我们把字符串也加进去会怎么样?如果可能的话,给我分享一些信息,如果不需要的话,为什么还有。这是java 7之前要求的,现在编译器可以根据您在左侧定义的推断类型。您必须将菱形运算符放在右边,因为您使用的是泛型,没有它,java将使用原始类型。在这里阅读更多