我知道如何“setValue”“getValue”但是在这种情况下你怎么做“getValue”?
public void setInfo(String name, int age) {
setName(name);
setAge(age);
}
有没有办法同时使用string和int getInfo?
答案 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;
}