在将其放入重复存储桶之前,请怜悯并帮助Java'新手'...我的代码是:
//at top of class
List<String> faceStrList = new ArrayList<String>(cardsPerSuit);
然后,使用有问题的其他方法的行(在另一种方法中):
faceStrList = readInfo( cardValueFileStr, faceStrList );
和问题孩子:
public static List readInfo( String inputFile, List<String> dataArrayOfStr )
{
String word = 'dummy';
dataArrayOfStr.add(word);
return dataArrayOfStr;
}
再次,请亲切地看着。
你只需要告诉编译器你正在返回一个字符串列表
public static List<String> readInfo(String inputFile, List<String> dataArrayOfStr)
{
String word = "dummy";
dataArrayOfStr.add(word);
return dataArrayOfStr;
}
java.util.List接口是java.util.Collection接口的子类型。它表示对象的有序列表,这意味着您可以按特定顺序访问列表的元素,也可以通过索引访问
您已经定义了faceStrList是一个字符串列表。然后,将任何类型的列表分配给变量。
它不会创建任何编译器错误,但如果可以指定将字符串列表返回给编译器会更好。
在这里:
public static List readInfo(
你到处都是泛型"正确";但在声明该方法时却没有。您省略了返回列表的泛型类型;从而返回原始类型(有关详细信息,请参阅此处)。这就是编译器警告您的内容。
因此,解决方案只是执行您在其他地方所做的相同操作,并将方法签名更改为
public static List<String> readInfo(
并记录在案:
List<String> faceStrList = new ArrayList<String>(cardsPerSuit);
可以简化为:
List<String> faces = new ArrayList<>(cardsPerSuit);
- 您可以使用
<>
菱形运算符省略泛型类型;无需重复该信息 - 除此之外:将集合类型放入变量名称中是没有意义的。只要明确"它不止一个"。关键是:也许您以后想更改集合类型。相信我,你会厌倦重命名所有变量!
- 返回已经作为参数出现的列表并不是一个好的做法。而且也不是必需的 - 像您一样向列表中添加某些内容已经会影响该传入列表。返回该列表只会使您的界面更"复杂",难以理解。