有没有办法在Java中做分部类(如C#)?

2022-09-02 21:45:56

C# 有一个很好的概念,一个类可以分布在多个.cs文件中。这适用于需要单个对象(所有代码都需要的成员变量)但有大量的代码的情况。然后,您可以跨源文件按功能展开此代码。

有没有办法在Java中做到这一点?

更新:好吧,起初我告诉自己,这必须是一个单独的大类(它执行DOCX文件内容的布局)。但是在发布这个之后,我想得更多了,它真的困扰着我,这是一个大的(目前有5000多行)类。

因此,我仔细考虑了一些替代方案,并想出了一个好方法,将其分解为一个主要类和大约20个辅助类。它以这种方式工作得很好,真正将功能分离到每个部分。

所以。。。虽然我认为分部类有时是一个有用的结构,但在这种情况下,缺乏分部类导致我想出了更好的设计。(这与最初的问题无关,但我认为值得分享。


答案 1

哈哈Java 不支持分部类。你会在这个问题这个问题中找到更深入的讨论。


答案 2

不,Java 不支持分部类。

如果这只是无聊的好奇心,请查看Scala。它像Java一样编译为.class文件,并具有完整的互操作。它支持将分部类粗略等价物为“特征”。

特征用法示例:

trait FunctionalityA {
  // some stuff implemented here
}

trait FunctionalityB {
  // more stuff implemented...
}

// etc...

class MyBigClass extends FunctionalityA with FunctionalityB with FunctionalityC

推荐