Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建对象时是否需要为两个菱形运算符指定数据类型?_Java_Android - Fatal编程技术网

Java 创建对象时是否需要为两个菱形运算符指定数据类型?

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

我正在用Java(Android Studio)创建ArrayAdapter对象 是否需要将字符串数据类型添加到菱形运算符的两侧?有人能解释一下吗

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将使用原始类型。在这里阅读更多