2013-05-16 5 views
2

매개 변수로 메서드를 전달하려고합니다. 그것을하는 방법?메서드를 매개 변수로 전달

나는 마음이 있습니다

public class MyButton extends JButton{ 

public MyButton(){ 
    super(); 
} 

public void setClick(method()); 
{ 
this.addMouseListener(new MouseListener() { 
      public void mouseClicked(MouseEvent arg0) { 
       method(); 
      } 
      public void mouseEntered(MouseEvent arg0) {} 
      public void mouseExited(MouseEvent arg0) {} 
      public void mousePressed(MouseEvent arg0) {} 
      public void mouseReleased(MouseEvent arg0) {} 
     }); 
} 

답변

4

당신은 자바 스크립트 함수를 전달하고 자바 7에서 코뿔소를 사용하여 실행하거나 Command 인터페이스를 만들고 그것의 인스턴스를 통과 할 수 있습니다. Java에는 클래스 외부에 함수 오브젝트가 없습니다.

public interface Command { 
    void execute(); 
} 

또는 당신은 당신의 선택의 Runnable 또는 Callable 구현 중 하나를 전달할 수 있습니다.

0

당신은 자바 매개 변수로 함수를 전달하는 것은 불가능 Java에서 개체 또는 원시를 통과 할 수

0

에서 확인할 수있다 당신은 C#에서와 마찬가지로 java에서 할 수 없습니다. 자바에서는 인터페이스를 정의하고 매개 변수로 전달해야합니다. 마지막으로 말하기 인터페이스 SetClickInterface { void setClick(); }

 
    public class MyClass extends JButton{ 
    private SetClickInterface clickMethod;

public void setSetClickInterface (SetClickInterface click) { this.clickMethod= click; } { this.addMouseListener(new MouseListener() { public void mouseClicked(MouseEvent arg0) { if(clickMethod != null) { clickMethod.setClick(); } } public void mouseEntered(MouseEvent arg0) {} public void mouseExited(MouseEvent arg0) {} public void mousePressed(MouseEvent arg0) {} public void mouseReleased(MouseEvent arg0) {} }); } </pre>