2016-06-14 3 views
1

私は "getValue"を "setValue"する方法を知っていますが、この場合は "getValue"をどのようにしますか?Stringとintを同時に使用してセッターとゲッターを実装する方法は?

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

getInfoとstringとintを同時に使用する方法はありますか?

+0

ブレークアップセッターを二つの部分に、 1つは「名前」、もう1つは「年齢」です。 –

+2

セッターとゲッターは、個々のメンバーのためのものです – Ramanlfc

+0

'return_type getName(){}'と 'return_type getAge(){}'。 'Ojbect o'、' o.getName(); 'と' o.getAge(); ' –

答えて

0

は、複数の方法があり、1は以下のとおりである:コードを1として

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

これはコンパイラの型チェックを失います。 – Andreas

+1

私は@Andreasに同意します。私の意見では、このメソッドを使用する他のクラスに情報を提供するためのAPIを公開する良い方法ではなく、それを使用する前に結果をキャストする必要があります。このAPIは、それを使用しようとしている他のクラスには少し混乱するかもしれません。 – pbajpai21

3

、名前と年齢の両方がインフォオブジェクトの一部であることを、私は、あなたが(GETINFOで全体のオブジェクトを返すことができるように)を想定するものあなたは、同じ機能の2つの値を返すことはできませんので、 EX-

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

を呼び出します。この方法を使用したくない場合は、名前と年齢の2つの別々のメソッドをそれぞれ記述する必要があります。以下のような:

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

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

この方法は、あなたはあなたのコードがきれいで分かりやすくすることができます。あなたはsetName(String name)setAge(int age)を持っているとして、あなたはすでにgetName()getAge()のようなメソッドを持って、

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

希望:

0

は、次の方法を試してください。私はそれを行う必要があるとき

+1

コンパイラの型チェックが失われます。 – Andreas

+1

こんにちは@ClaudioLopezコンパイル時の型チェックが必要ですか?必要な場合は、 'name'と' age'を含むラッパーオブジェクトを探してください。 –

+0

こんにちは@Andreasは受け入れられた答えを見てください。 –

0

私は通常、java.util.Mapを使用して、例えば:などSWIFTなど、いくつかのプログラミング言語で

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

+0

コンパイラの型チェックが失われます。 – Andreas

0

、「タプル」があると返すことができます同時に2つの値。

しかしJavaの世界であなたが公式「タプル」はありませんが、あなたは似たような行うことができます:あなたのケースで

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; 
} 
関連する問題