有没有一种方法可以在Java中创建公共静态类?

时间:2020-01-03 18:56:40

标签: java class static

所以我正在关注this tutorial 并且我遇到了一个问题,提供的代码无法用于我所了解的所有信息。

Matches whitespace characters (spaces and tabs).

问题在第一行(根据IntelliJ),“此处不允许使用修饰符'static'。但是,如果我删除了“静态”,它仍然无法正常工作。我想知道如何解决这个问题/解决这个问题。 我已经阅读了有关静态嵌套类的信息,但是在本文中我没有将其与其他代码一起使用。 我可能已经错过了一些简单的事情,如果真是那样,我感到抱歉。

3 个答案:

答案 0 :(得分:3)

static作为类修饰符,将内部类视为一个单独的实体,与要求引用封闭类的实例相反。因此,只有在内部类上使用它才有意义,因此仅在内部类上允许,而不是顶级类。本教程说:

然后在该程序包中创建一个名为“ ModItemGroups”的新类。接下来,创建一个名为“ ModItemGroup”的公共静态内部类,该类扩展了ItemGroup(来自net.minecraft.item.ItemGroup),该类在ModItemGroups中

不清楚(我不能说我快速浏览了本教程,尽管完全是另一回事),但这需要在ModItemGroups 类中定义作为顶级课程。

答案 1 :(得分:1)

这应该是一个内部类,您可以查看本教程以了解有关内部类的更多信息:https://www.javatpoint.com/static-nested-class

答案 2 :(得分:0)

您不能将类标记为静态。唯一的例外是嵌套类,可以将其标记为静态。该静态内部类可以访问外部类的静态变量,包括标记为私有的那些。它无法访问外部类的非静态变量。