【发布时间】:2013-06-18 16:29:20
【问题描述】:
我是论坛的新手,对 Java 编码还很陌生。
无论如何,我正在实现我的 Java 代码来动态编译和运行不同的类,这些类不知道先验,并且可能会随着时间而改变(不太频繁)。 我发现基于 javax.tools 提出的示例 here 非常有用,但是由于我的工作应该稍后实时运行,所以我想尽可能避免使用 Java 反射。 您知道是否存在一种无需使用再膨胀即可运行已编译代码的方法吗?编译后我可以检索一些指向该类的变量,然后使用它来实例化该类?
谢谢提前 卢卡
【问题讨论】:
-
Java 反射非常强大......库和框架利用它可以提供的能力,如果使用正确,它不会那么慢或不可靠。提供替代方案??我不知道...这取决于您想要代码的动态程度以及其他要求和限制
-
基本上该程序应该用于从一般用途的传感器获取和处理数据。编译不宜过于频繁,但处理和采集可能有较高的频率。但我不是通货再膨胀专家,我只是在site 上播种可能的问题,所以我不知道它的确切局限性。
-
hmmm true ...但是为什么要使用反射从传感器获取信息?只需单独预编译它们,如果您想动态执行它们,只需将它们加载到您的项目中即可
-
我没有告诉它,以避免不必要的信息,但代码与 Protege 和 OWL api 结合使用。基本上我想使用用 Java 编写的算法并通过语义应用程序控制数据流。因此编译通常只进行一次(如您所说,动态或预编译),但代码的使用是连续的,应该独立于我为构建此类框架而编写的内容。这意味着我事先不知道类的名称或将使用的方法(它们将由用户在本体上定义)。
-
如果它的预编译没问题......所有连接器或驱动程序类,尤其是作为 JDBC 驱动程序实现的那些都是预编译类......使用 class.forName 加载到内存中,它们通常是高频率的所以假设它没问题
标签: java reflection dynamic-compilation