【问题标题】:what is the fastest way to get all attributes from a class?从类中获取所有属性的最快方法是什么?
【发布时间】:2013-11-26 00:58:39
【问题描述】:

我正在使用一个工具,该工具应该生成一些 Java 代码,以加速基于摆动输入对话框的部分开发......没有必要进一步了解它,所以我要去我的问题...

我需要从一个类中检索所有属性以检查何时需要添加一个新属性。我尝试使用反射,但事情开始变得复杂。为了使用反射,我需要编译我想要获取属性的类,因为它不能直接从 .java 文件工作,它需要 .class 。

问题是很多类有很多依赖!由于一些设计缺陷,一些类是高度耦合的,所以如果我应该动态使用类加载器来编译类 A,我将不得不检索并编译它的所有依赖项!然后从A类依赖类中检索所有可能的依赖!

我做了一个测试,运行一个现有的 ant 文件来编译整个项目,而不是上面的方法,但是大约需要 9 分钟才能完成!从最终用户的角度来看,每次运行等待 9 分钟是不可接受的!

这里有人知道更好的解决方案吗???

【问题讨论】:

    标签: reflection attributes dependencies


    【解决方案1】:

    如果您想避免使用反射和字节码,这意味着您必须自己使用一种语法解析 .java 文件,而且还需要一个基于该语法的解析器。这是可能的(特别是如果您没有实现整个语法,因为许多 Java 功能在您的项目范围内可能毫无用处),但我认为这不是一件容易的事。

    【讨论】:

      【解决方案2】:

      有一个名为 ClassScan 的 Apache commons Sandbox 包。它能够进行您似乎需要的那种源解析。 http://commons.apache.org/sandbox/commons-classscan/。请注意,它在沙盒中,因此不是 Commons Proper 的一部分。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-08
        • 2014-06-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多