Java 我们可以使包含main方法的类匿名吗

Java 我们可以使包含main方法的类匿名吗,java,Java,下面是这个匿名内部类的示例,我们使用 class A { void one() { System.out.println("hello"); } } class One { public static void main(String args[]) { new A() { void five() { one();

下面是这个匿名内部类的示例,我们使用

class A
{
    void one()
    {
        System.out.println("hello");
    }
}

class One
{
    public static void main(String args[])
    {
        new A()
        {
            void five()
            {
                one();
            }
        }.five();
    }
}
我的问题是,我们是否可以将类
One
设置为匿名类(而不是其内部匿名类),即简单地将包含公共静态void main方法的类设置为匿名类

静态void main(String…
必须是
静态的
,内部类(匿名或其他)不能有静态方法

关于嵌套类与内部类

嵌套类分为两类:静态类和非静态类。声明为静态的嵌套类称为静态嵌套类。非静态嵌套类称为内部类

static void main(String…
必须是
static
,内部类(匿名或其他)不能有静态方法

关于嵌套类与内部类

嵌套类分为两类:静态类和非静态类。声明为静态的嵌套类称为静态嵌套类。非静态嵌套类称为内部类


不能为匿名类创建静态方法。首先,您将无法引用静态方法。唯一可能的方法是在运行时通过反射(这几乎不是好的编码实践)。在第二个实例中,所有匿名类和内部类都是使用某个“父”实例创建的(在您的示例中,A的匿名实例将包含对某个实例的引用)。这意味着内部类和匿名类在设计时并没有考虑静态方法。如果它们确实需要静态方法,那么它们应该是父类的一部分。

您不能为匿名类创建静态方法。首先,您将无法引用静态方法。唯一可能的方法是在运行时通过反射(这几乎不是好的编码实践)。在第二个实例中,所有匿名类和内部类都是使用某个“父”实例创建的(在您的示例中,A的匿名实例将包含对某个实例的引用)。这意味着内部类和匿名类在设计时并没有考虑静态方法。如果它们确实需要静态方法,那么它们应该是父类的一部分。

您尝试过吗?当你这样做的时候它会编译吗?更重要的是,它运行吗?你的问题真的不清楚
One
是顶级课程;匿名类总是嵌套的类。。。你到底想达到什么目的?你试过了吗?当你这样做的时候它会编译吗?更重要的是,它运行吗?你的问题真的不清楚
One
是顶级课程;匿名类总是嵌套的类。。。你到底想实现什么?如何实现?先生,请你解释一下好吗?我以为你可以,但你不能。谷歌不同意;)@PeterLawrey你说得很对,感谢你提供了精确的术语链接(嵌套类与内部类)。投票吧@dystroy我不想做伪证,但在这种情况下,即使在静态上下文中,匿名类也被视为内部类|你能解释一下吗,先生?我以为你能,但你不能。谷歌不同意;)@PeterLawrey你说得很对,感谢你提供了精确的术语链接(嵌套类与内部类)。投票吧@dystroy我不想做伪证,但在这种情况下,即使在静态上下文中,匿名类也被视为内部类|