接受java中ArrayList中的字符串作为ReturnType

时间:2019-04-29 11:05:17

标签: java string arraylist

我在XYZ类中有一个名为abc的变量。 该变量的返回类型为List,但更早的返回类型为String。因此,现在当列表作为输入时,它会被处理,但当String进入时,它会抛出Exception。 需要使它与数据类型List和String都兼容。 请帮助

private List<String> abc;

public List<String> getAbc() {
    return abc;
}

public void setAbc(List<String> abc) {
    this.abc = abc;
}

4 个答案:

答案 0 :(得分:6)

您要寻找的概念是method overloading

方法由其名称和所有参数定义,因此您可以定义两个不同方法,如下所示:

public void setAbc(List<String> abc) {
    this.abc = abc;
}

public void setAbc(String abc) {
    // Collections.singletonList creates an *immutable* list
    // See: https://docs.oracle.com/javase/10/docs/api/java/util/Collections.html#singletonList(T)
    this.abc = Collections.singletonList(abc);
}

答案 1 :(得分:5)

如果您需要的只是相同的方法名称,则可以执行以下操作:

public void setAbc(List<String> list) {
    this.abc = list;
}

public void setAbc(String str) {
    if (this.abc == null) {
        this.abc = new ArrayList<>();
    }
    this.abc.add(str);
}

您是要追加到此列表还是仅在输入时创建一个新列表?这是追加到列表的。

答案 2 :(得分:0)

private List<String> abc;

public List<String> getAbc() {
    return abc;
}

public void setAbc(List<String> abc) {
    this.abc = abc;
}

public void setAbc(String newItem) {
    if (this.abc == null) {
        this.abc = new java.util.ArrayList<>();
    }
    this.abc.add(newItem);
}

您添加一个新方法并追加到列表中。如ItFreak所述,这称为重载。

答案 3 :(得分:0)

如何按照String的@ItFreak重载方法的建议将String设置为List。 直到无法正常工作为止,直到