【发布时间】:2019-09-17 23:59:06
【问题描述】:
我在类 XYZ 中有一个名为 abc 的变量。 该变量的返回类型是 List,但之前它的返回类型是 String。所以,现在当一个列表作为输入出现时,它会被处理,但当一个字符串出现时,它会抛出异常。 需要使其与数据类型 List 和 String 兼容。 请帮忙
private List<String> abc;
public List<String> getAbc() {
return abc;
}
public void setAbc(List<String> abc) {
this.abc = abc;
}
【问题讨论】:
-
一个变量不能有两种不同的类型。您可以定义第二个变量并重载您的方法 setAbc(String s),然后将传递的字符串分配给另一个局部变量
-
哪一行导致异常?
-
您可能需要提供另一个 setter,可能是
public void setAbc(String abc) { this.abc = new ArrayList<String>(abc); }或类似... -
所有关于重载的评论都是有效的,但您也可以将
String的可变参数作为您唯一的 setter 版本,并在 setter 内部处理单个或多个项目列表的转换。跨度>