2016-10-28 4 views
-5

Я новичок в изучении методов в Java. В python было легко использовать «Функции», но я недавно узнал, что у java нет ничего подобного. У меня есть метод, который должен возвращать самое низкое значение из n1 и n2. Я получаю сообщение об ошибке в строке публичного статического Int minFunction ...Почему этот метод нельзя назвать внутри actionListener?

Multiple markers at this line 
- Syntax error on token "(", ; 
expected 
- Syntax error on token ",", ; 
expected 
- Syntax error on token ")", ; 
expected 

Но не кажется, нет ничего плохого в синтаксисе.

JButton btnCompute = new JButton("Compute"); 
    btnCompute.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
      try { 


       int n1=5; 
       int n2=4; 
       int minValue= minFunction(n1,n2); 


       public static int minFunction(int n1 , int n2) { 
         int min; 
         if (n1 > n2) 
          min = n2; 
         else 
          min = n1; 

         return min; 
        }      
       } 

      catch(NumberFormatException ex){ 

      } 
     } 
    }); 
+8

Вы не можете определить методы в методах. – Turing85

+0

Возможный дубликат [Поддержка Java ли внутренние/местные/подразделам методы?] (Http://stackoverflow.com/questions/5388584/does-java-support-inner-local-sub-methods) – DimaSan

ответ

0

Если вы хотите вызвать метод из реализации слушателя, поместите его в сторону реализации. Например,

JButton btnCompute = new JButton("Compute"); 
public void handleAction() { 
    btnCompute.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
      try { 

       int n1 = 5; 
       int n2 = 4; 
       int minValue = minFunction(n1, n2); 

      } 

      catch (NumberFormatException ex) { 

      } 
     } 
    }); 
} 
public int minFunction(int n1, int n2) { 
    int min; 
    if (n1 > n2) 
     min = n2; 
    else min = n1; 

    return min; 
} 
+0

Большое спасибо! – javaprogrammer

Смежные вопросы