为什么我不能在main方法中创建方法?

时间:2014-02-22 00:29:37

标签: java methods

我尝试在main方法中创建方法,但我无法找出问题所在。

public class test {
    public static void main(String[] args) {
        public static void menu()
        {

        }
    }
}

2 个答案:

答案 0 :(得分:3)

public class test {
    // Define the menu method in the class not in another method.
    public static void menu()
    {

    }

    public static void main(String[] args) {
        menu(); // Call it from the main method.
    }
}

答案 1 :(得分:2)

如果你真的需要创建一个访问另一个方法的局部变量的方法,你可以用本地类来完成:

public static void main(String... args)
{
    int i = args.length;

    final int finalI = i;
    class Inner {
        void dumpit() {
            System.out.println(finalI);
        }
    }
    new Inner().dumpit();
}

当然,这是一个人为的例子。请注意,内部类只能使用方法中声明的final局部变量。这意味着您使用的任何变量必须在声明内部类的点或之前修改它们的值,这意味着内部方法不能更改外部方法中的任何局部变量(但是您可以将变量包装在某些变量中)其他对象并在那里修改它们,因为只有对象的引用需要是final)。由于这一切,可能没有很好地利用上述习语。应该总是有更好的方法来编写它。但我想提一下它,以防它有一些好的用途。使用本地类的可能性更大的是编写一个实现某个接口的类或扩展其他类(例如RunnableThread),然后创建一个本地类的实例,然后传递其他一些方法。