java - $Include #include 等价于 Java

标签 java

我有一个非常庞大且臃肿的类,我想将它拆分成单独的文件,但它应该对用户完全透明并且与使用该类的现有项目兼容。

特别是,我有自己的 ImageMatrix 类,它定义了大量的一元函数、大量带有标量的二元函数、大量带有另一个图像的二元函数等。为了保持类干净且可维护,我希望将每个运算符类放在一个单独的文件中。

有没有办法将这些方法剪切/粘贴到文件中并将它们包含在源代码中?

所以我希望我仍然可以这样做,但这些方法实际上驻留在不同的文件中:

    ImageMatrix img = new ImageMatrix(800, 600, 3);
    img.clear(0.5f, 0.0f, 0,0f);
    img.addSelf(anotherImg);
    img.normalize();
    img.abs();
    img.addSelf(0.5);

每个方法大约有 15-30 行代码,因为实现针对性能进行了极度优化,而 Bufferedimage 或什至是普通 int[] 都不可能实现类似的功能。有很多代码重复,这是将类似方法组合在一起的主要原因。如果我添加一个函数或如果我更改全局行为(如错误检查),我可以轻松地保持事情的连贯性。

最佳答案

遗憾的是,无法将 Java 类定义拆分为多个文件。

尝试重构您的代码,这样就不需要庞大的类定义了。这通常意味着通过 getter 和 setter 方法公开一些状态,并编写使用这些方法向主类添加功能的支持类。

在您的情况下,您可能会考虑添加支持类,例如 ImageFilters,如果您喜欢非常小的类,甚至可以考虑添加更窄的类,例如 ImageNormalizer

关于java - $Include #include 等价于 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10025239/

相关文章:

java - 将 Spring Boot 1.4.4 升级到 1.5.4 - NoClassDefFoundError : ServletRegistrationBean

java - 如何在JPQL中重写where子查询条件

java - ASM Java BCI,跟踪方法参数值/方法返回值

java - 我应该将 Java 应用程序的图像放在哪里?

java - Freemarker 是否尊重方法描述符?

java - 我是否正确理解 Spring @Transactional 行为?

java - SpringMVC 模型属性在发布时返回 null

Java 数组响应而不是括号

java.lang.NullPointerException,看不出出了什么问题

java - 带有附加参数的 Mulesoft ConnectionManagementStrategy 类