我想知道是否可能有两个或更多文件用于同一个类(不是不同的类)。我希望这能更好地组织代码。
我认为答案是“不!”,但也许,有人知道这样做的模糊方法。
我们的想法是拥有一个名为AnalysisConfiguration
的配置GUI文件和另一个在GUI和Apache Commons Configuration之间建立桥梁的类(从GUI设置或将配置加载到GUI)。
我认为这两个可以是同一个类,但我认为代码变得很脏,将业务配置方法与“GUI-To-File”方法混合在一起。我可以轻松地将第二类称为AnalysisConfigurationFileBridge
,但好奇心告诉我搜索是否可能将两者作为同一类。
答案 0 :(得分:3)
答案确实没有。如果一个类的代码太长,以至于需要更好地组织两个文件,那么可能是它应该被重构并分成几个类的标志。
答案 1 :(得分:1)
不,不在同一个包装中。 .java
文件的名称必须始终与其顶级(公共)类的名称相匹配。
答案 2 :(得分:1)
您可以使用AspectJ的类型间声明将一些实现放在一个方面的j文件中,其余的放在java文件中,并在编译时将它们神奇地结合起来。
我知道Spring Roo将此用于getter和setter,这个想法是从.java文件中获取该样板代码使其更清晰。
请参阅http://www.eclipse.org/aspectj/doc/released/progguide/language-interType.html
答案 3 :(得分:0)
不,但可以在同一个源文件中有多个类。您还可以使用一些预处理器,它会将不同的几个源文件连接成一个,然后再将其处理为javac,但这会增加额外的构建步骤。
像IntelliJ IDEA这样的体面IDE可以帮助你更多
答案 4 :(得分:0)
Java无法编写部分类。其他一些语言for example C#也可以。此外,Java中不支持mixin,因此某些编码模式一起变得很麻烦。您可能会发现扩展另一部分的一部分就足够了。否则,您可以查看各种选项,包括字节码操作,元编程或根据需要使用其他JVM语言。
答案 5 :(得分:0)
你可以做的是有几个抽象类作为父母。你可以
abstract class A {
// some methods and fields.
}
abstract class B extends A {
// some more methods and fields.
}
class C extends B {
// some more methods and fields.
}
如果有很多课程似乎很疯狂,那可能就是疯了。 ;)你应该使用你认为最有意义的课程。