2010-01-11 116 views
2

我想从存储在数组中的方法返回两个值。我该怎么做?
例如:该方法需要返回"un""pwd"从方法返回字符串[]

+0

不挑剔,但在面向对象的世界里,对象函数被称为方法。因为所有方法都必须在某个类/对象的范围内,所以Jave本身没有函数。 – 2010-01-11 06:24:32

+3

这是所有的语义。 – zmbush 2010-01-11 06:32:52

回答

5

你试过:

public String[] getLogin() { 
    String[] names = new String[]{"uname", "passwd"}; 
    return names; 
} 

这就像重新调整任何其他对象。

8

整洁和Javaesque返回多个值的方法是创建一个对象以返回它们,例如,

public class Whatever { 
    public String getUn() { return m_un; } 
    public String setUn(String un) { m_un = un; } 
    public String getPwd() { return m_pwd; } 
    public String setPwd(String pwd) { m_pwd = pwd; } 
}; 

public Whatever getWhatever() { 
    Whatever ret = new Whatever(); 
    ... 
    ret.setPwd(...); 
    ret.setUn(...); 
    ... 
    return ret; 
} 
+0

+1:这是面向对象的方式:-)。 – sleske 2010-01-11 11:29:36

+1

-1为公共,非最终字段。 – 2010-01-11 13:10:46

+0

从严格的“java”OOP方式,这是做到这一点的正确方法。 – PaulP1975 2010-01-11 13:41:11

2

如果你知道如何返回任何对象,你会知道如何返回一个数组。没有区别。

+1

另外:没有勺子 – 2010-01-11 09:49:53

1

HashMap也适用于此。这样你就不必写一个特殊的课程。

 
public Map<String,String> getLogin() { 
    Map<String,String> map = new HashMap<String,String>(); 
    map.put("item1", "uname"); 
    map.put("item2", "passwd"); 
    return map; 
} 
+0

是的,这是可能的,但使用Hashmaps返回多个值可能很快难以遵循(“现在在什么键下我把值xyz?”)。正如Will所建议的,创建一个小的自定义类来封装值通常会更好。 – sleske 2010-01-11 11:29:02

+0

sleske,同意......自定义类更好。但是,您可以通过定义静态(最终)常量来处理关键问题。 – PaulP1975 2010-01-11 13:42:36