2013-04-11 67 views
0

正如標題所述,我無法從任何人獲得任何輸入。它應該回顯InputTypeMismatch的錯誤,或者如果你做數字,那麼它會說空引用錯誤。通過CMD獲取輸入的麻煩 - java

有人可以糾正嗎?這讓我瘋狂。我不知道在哪裏檢查。

由於是預先:)

Exception in thread "main" java.util.InputMismatchException 
      at java.util.Scanner.throwFor(Unknown Source) 
      at java.util.Scanner.next(Unknown Source) 
      at java.util.Scanner.nextFloat(Unknown Source) 
      at TestFile.promptsentence(TestFile.java:54) 
      at TestFile.main(TestFile.java:43) 

這裏是一個例子:

public class TestFile(){ 

      Scanner inp = new Scanner(System.in); 

      public static main(String[] args){ 
        long inp = inp.NextLong(); 
        // prompts 
        String input = Long.valueOf(inp); 

        System.out.println(input); 

      } 


    } 
+0

我得到了一個downvote和1修訂。他們預先拿出了謝謝:)) – user2262111 2013-04-11 02:23:09

+1

把它放在主要方法之外。看看http://docs.oracle.com/javase/tutorial/java/javaOO/variables.html – Drogba 2013-04-11 02:23:20

+0

上面的主要方法或下面,如果我從主要方法調用的東西/將永遠調用他們從主要的方法。 – user2262111 2013-04-11 02:24:31

回答

-2
/* Here among class variables, outside any methods:*/ 

    Private TestFile f; 

    public static void main(String[] args) { 

     f = new TestFile(); 
     f.promptsentence(); 

    }; 

希望,這是再清楚不過。

我沒有對其餘的代碼做任何聲明 - 只是回答關於對象f聲明和賦值的問題。

+0

我喜歡你在這裏做的。我做了這樣的事情並解決它。謝謝。 – user2262111 2013-04-11 22:51:30

-1

TestFile f不是public void repart()範圍內。把它的主要外面做類似

public class TestFile { 

    private TestFile f = new TestFile(); 

    public static main(String[] args){ 
     // Some Code 
    } 

    public void repart() { 
     if(f.checksent(1) == true){ 
      // some code 
     } 
    } 
} 

應該現在的工作。總的來說,我認爲這不是一個好的做法。如果我正在做這個任務(我假設它的任務),我會做2類文件。一個Main,和一個TestFile,然後做到這一點。

// TestFile.java 
public class TestFile { 

    public TestFile() { 
     // some constructor stuff 
    } 

    public void repart() { 
     if(f.checksent(1) == true){ 
      // some code 
     } 
    } 
} 

// Main.java 
public class Main{ 

    private TestFile f = new TestFile(); 

    private static TestFile f = new TestFile(); 

    public static main(String[] args){ 
     f.repart(); 
    } 

} 

這國際海事組織是更好的方式來做到這一點。希望這可以幫助。

+0

我仍然得到f不是靜態的錯誤 – user2262111 2013-04-11 02:29:29

+0

@pattmorter - **錯誤**。 'Private TestFile f';應該是一個類變量,在main()中用'f = newTESTfile();'啓動,假定main將調用所有其他方法。 – 2013-04-11 02:38:30

+0

@ user2262111然後將'private TestFile f'改爲'private static TestFile f'。和@ PM77-1,**好**。 – pattmorter 2013-04-11 02:54:10

-1

我認爲這將有助於你在這裏Java Class and Object

開始

  • main()函數的語法是錯誤的,你所擁有的錯誤是編譯時錯誤

    。它應該像public static void main(String[] args)
  • 您沒有定義「checksent()」方法,並且您試圖訪問它。
+0

不,謝謝你的鏈接,我會檢查它。 – user2262111 2013-04-11 02:34:25