ArrayList显式类型参数字符串可以替换为<&gt ;?

时间:2017-03-25 16:17:31

标签: java android arraylist

这是一个新手! 我想在Android Studio上创建一个arrayList:

ArrayList<String> family = new ArrayList<String>();

但它给了我一个警告&#34;显式类型参数字符串可以替换为&lt;&gt;&#34;和&#34;此检查报告所有带有类型参数的新表达式,可以用菱形类型&lt;&gt;&#34;替换。我试图忽略它,因为它只是一个警告但我无法使用&#34; .add&#34;添加任何元素到Arraylist。所以我认为Arraylist甚至没有被创造出来。我尝试重新启动Android Studio,但没有任何效果!谢谢你的时间。

编辑:主要问题是当我使用&#34;添加&#34;它说它无法解决符号“添加”。 例如:

family.add("jacob");

解决:感谢大家的答案,我卸载了Android Studio,然后重新安装它,我不再遇到问题了!

3 个答案:

答案 0 :(得分:2)

而不是写

ArrayList<String> family = new ArrayList<String>();

你可以写

ArrayList<String> family = new ArrayList<>();

如果您使用的是Java7。

它被称为diamond operator,它只是语法糖。你可以放心地忽略它。

答案 1 :(得分:1)

考虑以下(无效)示例...此代码无法使用与您相同的错误Cannot resolve symbol add进行编译。

public class Example
{
    ArrayList<String> list = new ArrayList<>();
    list.add("family");
}

第一个语句是合法的 - 它在最初创建类时声明并初始化列表。但是,第二个声明不合法 - 只能在方法中调用add

以下是更正后的示例..对add的调用已移至构造函数(特定类型的方法),编译器不再抱怨add无法解析。

public class Example
{
    ArrayList<String> list = new ArrayList<>();

    public Example()
    {
        list.add("family");
    }
}

问题与钻石<>运算符无关。正如其他人所指出的,这是“语法糖”,应该使编写代码更容易。恕我直言,ArrayList<String> list = new ArrayList<String>();中的冗余没有任何问题。我个人的偏好是禁用该特定警告。

答案 2 :(得分:-1)

试试这个:

List<String> family=new ArrayList<>();
family.add("jacob");