Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.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 为什么';t eclipse在方法参数中使用菱形运算符_Java_Eclipse_Diamond Operator - Fatal编程技术网

Java 为什么';t eclipse在方法参数中使用菱形运算符

Java 为什么';t eclipse在方法参数中使用菱形运算符,java,eclipse,diamond-operator,Java,Eclipse,Diamond Operator,我有一门课是这样的: public class TestObject { List<String> data; public List<String> getData() { return data; } public void setData(List<String> inputData) { data = inputData; } } 公共类TestObject { 列出数据; 公共列表

我有一门课是这样的:

public class TestObject
{
   List<String> data;

   public List<String> getData()
   {
     return data;
   }

   public void setData(List<String> inputData)
   {
      data = inputData;
   }
}
公共类TestObject
{
列出数据;
公共列表getData()
{
返回数据;
}
公共无效设置数据(列表输入数据)
{
数据=输入数据;
}
}
我在“首选项->Java->编辑器->保存操作->配置->不必要的代码->删除冗余类型参数”(1.7或更高版本)中选中了该选项

现在我创建一个主类:

public class Main 
{
   public static void main(String[] args)
   {
     TestObject o = new TestObject();
     o.setData(new ArrayList<String>());
   }
}
公共类主
{
公共静态void main(字符串[]args)
{
TestObject o=新的TestObject();
o、 setData(新的ArrayList());
}
}
现在我保存文件

我本来希望eclipse在保存文件时删除setter中的“String”类型参数,但它仍然保留在那里

你知道为什么会这样吗(是有原因吗,还是我错过了必须启用的设置?)


谷歌

它只删除以下代码:

List<String> yourList = new ArrayList<String>()
to
List<String> yourList = new ArrayList<>()
List yourList=new ArrayList()
到
List yourList=new ArrayList()
如果这是像您的代码一样传入的方法,eclipse将不会删除它

不完全确定,但从下面的错误看来,只有当类型参数是多余的时才会删除它

将类型参数减少为菱形(1.7或更高)
o仅当冗余时才禁止o


听起来像一个bug,尽管它没有多大区别。你知道为什么会这样吗?因为如果我删除setter调用中的type参数,它就是编译的有效代码。@programmingFox在这种情况下,
new ArrayList()
new ArrayList()
是相同的,只要
setData(List inputData)
没有更改(例如改为
setData(List inputData)
)。在这里,隐藏类型参数会降低代码的可读性。