2017-11-20 4 views
1

그래서 나는이 같은 클래스를 보이는 것을 :JAVA에서 한 행의 메서드 매개 변수로 여러 인스턴스 필드를 설정하는 방법은 무엇입니까?

public class Example { 
    private String apple; 
    private String orange; 

    public void setNew(String apple, String orange) { 
     //Instead of 
     this.apple = apple; 
     this.orange = orange; 

     //I once saw a way you could do it in one line like 
     this.(apple, orange) = (apple,orange); 

     //but this does not compile 
    } 

이 어떻게 한 줄에 오렌지에 사과와 오렌지에 사과를 설정할 수 있습니까?

+3

하나의 명령문이 아니라 한 줄로 입력 할 수 있습니다. – shmosel

+0

그러나, 'this.apple = this.orange = apple'에 의해 한 줄로 같은 값으로 설정할 수 있습니다. – Izruo

+0

C + + 또는 C# 프로그램을 본 것이 확실하지 않습니까? –

답변

2

Java에서는이를 수행 할 수 없습니다. 여러 문장을 사용하여 동의해야합니다.

+0

과 같이 유창한 인터페이스 (빌더 패턴이라고도 함)를 사용하는 좋은 후보자처럼 보일지도 모른다. 어쩌면 그는 인수가없는 생성자를 추가 할 때 static 값을 가진 두 개의 arg 생성자를 호출 할까? 그것은 한 줄 것입니다 :) –

1
public void setNew(String apple, String orange){  
    this.apple = apple; this.orange = orange; 
} 
+0

";" 라인의 끝을 의미하므로 답은 친구가 아닙니다. –

+0

고마워요,하지만 이것은 그가 묻고있는 것과 가장 가까운 것입니다. ";" 명령문의 끝을 의미하므로 유효한 java입니다. –

+0

@KrzysztofKubicki 물론 올바른 대답입니다. 질문은 하나의 문장이 아니라 한 줄을 물어 봅니다. * "사과와 사과를 오렌지색으로 오렌지색으로 설정할 수있는 방법은 ** 한 줄에 **?"* ---;은 분명히 줄의 끝을 의미하지 않습니다. 그것은 문장의 끝을 의미합니다. 선과 진술 사이에는 큰 차이가 있습니다. Java에서는 줄 끝 기호가 의미가 없으므로 줄 주석 ('/')을 제외하고는이 두 줄 사이에는 아무런 관련이 없습니다. – Andreas

0

그래서 내가했다 생각했다 당신은 생성자 호출하는 다른 방법이있을 때 : 의견이 제안으로 this(param1, param2);

그런 다음, 개별적으로 인스턴스 필드를 설정해야합니까를 .

관련 문제