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,然后重新安装它,我不再遇到问题了!
答案 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");