运行代码时获取java.lang.NoSuchMethodError

时间:2015-07-14 00:48:49

标签: java

我的代码没有运行。 我收到了错误

  

线程中的异常" 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 个答案:

答案 0 :(得分: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的内部类,但不建议这样做。