2015-07-14 2 views
-2

Мой код не работает. я получаю ошибкуПолучение java.lang.NoSuchMethodError при запуске кода

Exception in thread "main" java.lang.NoSuchMethodError: main

Это мой код ниже ... будет кто-нибудь, пожалуйста, помогите ?!

Проблема связана с окончательной вложенной веткой с TestDieClass.

public class DieMod { 

    private final int MAX = 6; 
    private int faceValue; 

    public DieMod() { 
     faceValue = 1; 
    } 

    public int roll() { 
     faceValue = (int) (Math.random() * MAX) + 1; 
     return faceValue; 
    } 

    public void setFaceValue(int value) { 
     if (value >= 1 && value <= 6) { 
      faceValue = value; 
     } 
    } 

    public int getFaceValue() { 
     return faceValue; 
    } 

    public String toString() { 
     String result = Integer.toString(faceValue); 
     return result; 
    } 

    public class TestDieClass { 

     public static void main(String[] args) { 
      DieMod die = new DieMod(); 
      die.setFaceValue(4); 
      System.out.println("input value : " + 4); 
      System.out.println("Result value : " + die.getFaceValue()); 
      die.setFaceValue(10); 
      System.out.println("input value : " + 10); 
      System.out.println("Result value : " + die.getFaceValue()); 
     } 
    } 
} 
+1

Вы внедряете открытый класс в открытый класс? Просто поместите их в отдельные файлы .java! Или, еще проще, просто избавитесь от утверждения 'public class TestDieClass'. – Gosu

ответ

0

Удалите public class TestDieClass и он будет работать.

Код:

public class DieMod { 

    private final int MAX = 6; 
    private int faceValue; 

    public DieMod() { 
     faceValue = 1; 
    } 

    public int roll() { 
     faceValue = (int) (Math.random() * MAX) + 1; 
     return faceValue; 
    } 

    public void setFaceValue(int value) { 
     if (value >= 1 && value <= 6) { 
      faceValue = value; 
     } 
    } 

    public int getFaceValue() { 
     return faceValue; 
    } 

    public String toString() { 
     String result = Integer.toString(faceValue); 
     return result; 
    } 

    // Change made here 
    public static void main(String[] args) { 
     DieMod die = new DieMod(); 
     die.setFaceValue(4); 
     System.out.println("input value : " + 4); 
     System.out.println("Result value : " + die.getFaceValue()); 
     die.setFaceValue(10); 
     System.out.println("input value : " + 10); 
     System.out.println("Result value : " + die.getFaceValue()); 
    } 
} 

Выход:

input value : 4 
Result value : 4 
input value : 10 
Result value : 4 

Примечание:

  • Если вы хотите иметь DieMod класс, и отдельный класс драйвера, т. е. TestDieClass, вам придется поместить их в отдельные файлы .java.
  • Другим вариантом является объявление класса DieMod как внутреннего класса TestDieClass, но это не рекомендуется.
Смежные вопросы