【问题标题】:Java: Compile only selected methods from another classJava:仅编译来自另一个类的选定方法
【发布时间】:2016-06-13 08:57:07
【问题描述】:

如果我的 java 类“UserClass”依赖于另一个类“UsedClass”(作为库 jar 提供)。如果“UsedClass”有 26 个方法(比如说 A - Z)。但是我的“用户类”只需要来自(假设他们不内部调用除 A 到 D 之外的任何方法)的方法(假设 A 到 D)。当我构建“UserClass”时,是否有任何方法可以防止“UsedClass”中未使用的方法(例如 E 到 Z)被运送到我的应用程序中(这可能会增加执行时可分配/内存消耗的大小)。

【问题讨论】:

  • 如果 UsedClass 有 26 个方法,我会先看看,如果 UsedClass 做得太多/有多个责任。如果是这种情况,我会在其自己的类中重构每个职责——比如在 classA 和 classB 中——如果可能的话。 ClassB 仍然可以使用每个对象组合的 classA.A-Z。
  • 26 只是任意数字(可能会少得多)。假定 UsedClass 是由其他人开发的(可以说用作库 jar)。在那种情况下,所有未使用的方法是否也随应用程序一起提供?有没有办法避免这种情况。
  • 如果它是一个外部库 - 你可能不走运。但也许有人确实知道一些技巧。如果你认识编写这个库的人,并且你发现这个类确实有不止一个责任——也许你可以和他们谈谈。

标签: java oop jar build compilation


【解决方案1】:

不要进行过早的优化,在大多数情况下,是库增加了项目的大小。如果您的方法在那里没有使用,那么只需删除即可。如果它们被其他一些不相关的代码使用,那么您最好将代码拆分为模块,以便您可以以不同的组合使用它们。正如我已经说过的,您的代码(您创建的代码)将是您最终应用程序的最小部分。 如果您仍然坚持要有条件地编译方法,那么我会说使用标准工具是不可能的。

【讨论】:

  • 嗨,我所有的代码方法都将被使用,我主要关心的是外部库 jar 文件未使用的方法,因为它们可能会增加我的应用程序的大小。
  • 那么您可能希望尽快摆脱未使用的类。看看这里stackoverflow.com/q/7384970/4517895
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-03
  • 2022-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-14
  • 2019-03-20
相关资源
最近更新 更多