如何同时使用String和int实现setter和getter?

时间:2016-06-14 04:11:04

标签: java setter getter

我知道如何“setValue”“getValue”但是在这种情况下你怎么做“getValue”?

public void setInfo(String name, int age) {
    setName(name);
    setAge(age);
}

有没有办法同时使用string和int getInfo?

5 个答案:

答案 0 :(得分:3)

根据代码,我假设name和age都是InfoObject的一部分,所以你可以在getInfo()调用中返回整个对象, 前 -

public InfoObject getInfo() {
    return infoObject();
}

因为您无法从同一函数返回两个值。如果您不想使用这种方式,那么在这种情况下,您必须为每个名称和年龄编写两个单独的方法。喜欢:

public String getName() {
    return this.name;
}

public int getAge() {
    return this.age;
}

通过这种方式,您可以使代码清晰易懂。

答案 1 :(得分:0)

有多种方式,一种方式如下:

public Object[] getInfo() {
    Object[] info = new Object[2];
    info[0] = getName();
    info[1] = getAge();
    return info;
}

答案 2 :(得分:0)

您可以尝试以下方法:

public Object[] getValue(){
    return new Object[]{getName(), getAge()};
}

希望您已拥有getName()getAge()等方法,因为您拥有setName(String name)setAge(int age)

答案 3 :(得分:0)

我需要这样做时通常使用java.util.Map,例如:

private Map<String, Object> getInfo() {
    Map<String, Object> result;
    result.put("name", name);
    result.put("age", age);
    return result;
}

https://docs.oracle.com/javase/7/docs/api/java/util/Collections.html

答案 4 :(得分:0)

在一些编程语言中,例如swift,有&#34; tuple&#34;可以同时返回两个值。

然而,在Java世界中,你没有官方的&#34; tuple&#34;,但你可以做类似的事情:

public class Pair<F, S> {
    public F first;
    public S second;
}

在你的情况下:

Pair<String, Integer> mValue;

public void setInfo(String name, int age) {
    mValue = new Pair<String, Integer>(name, age);
}

public Pair<String, Integer> getInfo() {
    return mValue;
}