有没有办法用Java做部分类(比如C#)?

Dav*_*len 18 java partial-classes

C#有这个伟大的概念,其中一个类可以分布在多个.cs文件中.这对于你想要一个单个对象(所有代码都需要的成员变量)而且需要大量代码的地方非常有用.然后,您可以通过源文件中的功能传播此代码.

有没有办法在Java中这样做?

更新:首先我告诉自己,这必须是一个大型类(它执行DOCX文件内容的布局).但是在发布之后我更多地考虑了它并且它真的困扰我,这是一个大的(目前5000多行)类.

所以我想了一些替代方案,想出了一个很好的方法将它分解为一个主类和大约20个辅助类.这种方式非常好,真正将功能分离到每个部分.

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

Asa*_*aph 16

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


Dyl*_*lan 7

不,Java不支持部分类.

如果这只是空闲的好奇心,请查看Scala.它像Java一样编译成.class文件,并且具有完全互操作性.它支持将部分类粗略地称为"特征".

特质使用的一个例子:

trait FunctionalityA {
  // some stuff implemented here
}

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

// etc...

class MyBigClass extends FunctionalityA with FunctionalityB with FunctionalityC
Run Code Online (Sandbox Code Playgroud)