2016-06-14 9 views
1

"getValue"어떻게 "setValue"알고 있지만이 경우 "getValue"어떻게합니까?String과 int를 동시에 사용하여 setter 및 getter를 구현하는 방법은 무엇입니까?

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

getInfo와 string 및 int를 동시에 사용할 수 있습니까?

+0

브레이크 업 세터를 두 부분으로, 하나는 '이름'이고 다른 하나는 '연령'입니다. –

+2

setter 및 getter는 개별 멤버 – Ramanlfc

+0

'return_type getName() {}'및'return_type getAge() {}'용입니다. 'Ojbect o','o.getName();'과'o.getAge();' –

답변

0

여러 가지 방법이 있습니다, 하나는 아래와 같습니다 : 코드 당으로

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

이것은 컴파일러의 타입 체크를 잃어 버릴 것입니다. – Andreas

+1

@Andreas에 동의합니다. 제 의견으로는,이 메소드를 사용할 다른 클래스에 정보를 제공하는 API를 노출하는 좋은 방법이 아닌, 그것을 사용하기 전에 결과를 캐스팅해야합니다. 이 API는이 API를 사용하려는 다른 클래스에 혼동을 줄 수 있습니다. – pbajpai21

3

, 이름과 나이 모두는 infoObject의 일부임을 나는, 당신이 (된 getInfo에 전체 개체를 반환 할 수 있습니다) 가정 무엇 당신은 동일한 기능에서 두 값을 반환 할 수 없기 때문에

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

전직, 전화. 이 방법을 사용하고 싶지 않다면 각각의 이름과 나이에 대해 두 가지 별도의 메소드를 작성해야합니다. 같은 :

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을 사용으로 반환 할 수 있습니다 "튜플"

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

있다 동시에 두 값.

그러나 자바 세계에서 더 공식적인 "튜플"없다,하지만 비슷한 할 수 있습니다 : 귀하의 경우

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; 
}