2017-02-10 1 views
0

다른 클래스의 메서드를 실행해야하지만 메서드를 호출 할 클래스의 메서드에 대한 변수를 사용하고 싶습니다. 메서드에 너무 많은 변수가 있기 때문에 매개 변수를 전달하고 싶지 않고 원본 클래스에 대한 코드를 망칠 수 있습니다.현재 클래스의 변수를 사용하여 다른 클래스의 메서드 실행

variable1; 
variable2; 
variable3; 
otherClass OC = new OtherClass(); 
otherClass.method(); 

과 소위 'otherClass'방법 (방법에 클래스)에서 방법을 실행하는

클래스, 예를

입니다 -

내 코드의 예는 다음과 같다

variable1; 
variable2; 
variable3; 
public void method() 
{ 
//DOES STUFF WITH variable1 variable2 and variable3 
} 

내가 원하는 것은 메소드를 호출하고있는 클래스의 변수 (즉, 먼저 게시 한 코드의 클래스)를 사용하여 메소드를 실행하는 것입니다. 이 일을 할 수있는 방법이 있습니까?

+0

데이터 멤버를 보유 할 컨테이너 클래스를 만들고,이를 채우고 해당 개체를 호출 메서드에 전달하십시오. – OldProgrammer

+0

당신이 필요로하는 것이 분명하지 않습니다. 왜 매개 변수를 메서드에 전달하려고합니까? – davidxxx

답변

3

OldProgrammer가 말했듯이 적절한 해결 방법은 컨테이너에 사용 방법에 필요한 모든 변수를 캡슐화하는 것입니다.

예 :

public class ContainerClassExample { 

    private static class Container { 
     Object variable1, variable2, variable3; 

     public Container(Object variable1, Object variable2, Object variable3) { 
      this.variable1 = variable1; 
      this.variable2 = variable2; 
      this.variable3 = variable3; 
     } 
    } 

    public static void main(String[] argv) { 
     Container aContainer = new Container("a", "b", "c"); 
     methodA(aContainer); 
     System.exit(0); 
    } 

    public static void methodA(Container input) { 
     // Do something with variable1, variable2, and variable3 
    } 
} 

상급 입력 매개 변수의 수는 더 나는 당신이 당신의 컨테이너를 만들 수 builder pattern를 사용하는 것이 좋습니다.

관련 문제