方法(下面)是List<String>
类型,我用作参数的类是String
。我想知道我的投射方式是否有效:
return (List<String>) subList;
这是方法:
public List<String> getWords(String phrase) {
LetterCounter subList = new LetterCounter(phrase);
if (phrase == null) throw new IllegalArgumentException();
for (String element : dict) {
if (subList.contains(element))
subList.add(element);
}
return (List<String>) subList;
}// End of getWords
此网址指向LetterCounter
类:
我把它放在粘贴箱中因为班级太长了。
答案 0 :(得分:2)
更好地创建List<String>
的新实例并将String元素添加到
public List<String> getWords(String phrase) {
LetterCounter subList = new LetterCounter(phrase);
if (phrase == null) throw new IllegalArgumentException();
List<String> str = new List<>();
for (String element : dict) {
if (subList.contains(element))
str.add(element);
}
return str;
}
我建议这样做,因为您的element
in循环是String
。
答案 1 :(得分:1)
如果LetterCounter
类的定义如下:
public class LetterCounter extends ArrayList<String>{
// implementation
}
你根本不需要施放。这是因为Java允许协变返回类型。请查看What is a covariant return type?