java - 禁用 "The public type xyz must be defined in its own file"的执行

标签 java eclipse

新手 java 问题。

对于我的项目,我有一个在 XML 文件中定义的类模型,然后我将其转换为一个模型。例如:

<model>
    <class name="abc"><field>one</field><field>two</field></class>
    <class name="xyz"><field>f1</field><field>f2/field></class>
</model>

这被转化为:

public class abc {
    String _one;
    String _two;
    public String get_one() {
        return _one;
    }
... and so on you get an idea

显然,将每个类转换成它自己的 .java 文件会很麻烦。将它们堆积在一个 .java 文件中会更易于管理。但是java有这样的要求,每个类必须在自己的文件中定义,并且文件名必须和类名匹配。否则,编译器将显示错误:The public type XYZ must be defined in its own file

很可能可以这样定义它:

public class ModelContainer {

    public class abc {
        ...
    }
    public class xyz {
        ...
    }
}

还有别的办法吗?理想情况下,我正在寻找一个编译器开关或类似的东西,这将禁用将每个类放在其自己的文件中的要求。如果有任何不同,我正在使用 Eclipse

最佳答案

如果您可以使用内部类,那么是的,这会起作用,但每次您想要实例化内部类时都必须获取外部类的实例:

public class ModelContainer {
    public class abc {
        ...
    }
    public class xyz {
        ...
    }
}

您也可以将嵌套类声明为静态类,这样就不必先实例化外部类:

public class ModelContainer {
    public static class abc {
        ...
    }
    public static class xyz {
        ...
    }
}

看看这个post了解更多详情。

关于java - 禁用 "The public type xyz must be defined in its own file"的执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19731191/

相关文章:

java - 我的 JPanel 不会显示。 Eclipse 说我没有错误。 java

c - 共享内存的重新分配

java - 保存对话框输入

java - Java 更新后 Eclipse 中出现错误

java - 请解释一下这种情况下的Java继承

java - Java 中这些 'generic' 语法之间的区别

java - 填充 SQLite 数据库

java - 如何阻止鼠标退出窗口?

eclipse - 如何解决 SonarLint eclipse 缺少所需的包

eclipse - 应将哪些 Eclipse 项目/工作区文件添加到源代码管理?