2014-03-30 26 views
-2

我正在編寫一個程序,爲了方便起見,我想從一個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("");}; 

我在編程相對較新,所以任何幫助將是巨大的!

+0

'選擇()'需要聲明'static'讓你能夠從'主要調用它( )'。就像錯誤信息所述。它與'if-else'無關。這是什麼 - >'靜態無效的主要select1(); {'? –

+0

'static void main select1(); {'你想在這裏做什麼?哪部分應該是你方法的名稱?這裏的主要目的是什麼?爲什麼在'select1()'之後有';'? – Pshemo

+0

您聲明方法的方式是語法錯誤 - 您會引入重複的命名標識符並在括號後面引入分號。 – Makoto

回答

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(); 
    } 
} 
+0

@ user3071724:如果這個答案對你有幫助,請考慮增加投票和通過點擊大綠色複選標記來接受它作爲您的答案。祝你好運,歡迎來到stackoverflow! – aliteralmind

相關問題