试着在if else中调用一个方法..我哪里错了?

时间:2014-03-30 23:05:31

标签: java function if-statement methods

我正在编写一个程序,为了方便起见,我想在if / if else中调用一个函数。 我不断收到消息"非静态方法select1()不能从静态上下文引用"。

代码示例:如果是,则导致方法:

option = input.nextInt();

if (option == 1){select1();}
if (option == 2) {System.out.println("boo");}
if (option == 3) {System.out.println("hehe");}
else {System.out.println("blahh");}

   }


}

static void main select1();{

System.out.println("");};

我在编程方面比较新,所以任何帮助都会很棒!

1 个答案:

答案 0 :(得分:0)

这是非法的:

public class MyClass  {
   public void doSomething()  {
      //...
   }
   public static void doSomethingStatically()  {
      doSomething();
   }
}

因为doSomething()是非静态的,因此必须绑定到特定实例。

使用以下任一方法修复:

public class MyClass  {
   public static void doSomething()  {
      //...
   }
   public static void doSomethingStatically()  {
      doSomething();
   }
}

或者这个:

public class MyClass  {
   public void doSomething()  {
      //...
   }
   public static void doSomethingStatically()  {
      (new MyClass()).doSomething();
   }
}