2010-01-11 93 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