Java 反射还是运行时类声明?
我有一个简单的问题 我们正在开发一个简单的应用服务器(如),该服务器在运行时接受客户端业务,而无需重新启动服务器 当用户实现其业务并将其部署到服务器时,服务器只需找到归档描述符并加载模块,就可以正常工作 有些操作需要进行大量的反射调用,对于每个调用,它们都会一次又一次地调用。例如,有一个方法,它接受任何对象,然后搜索某个由注释签名的字段,并对其进行处理,因此,如果我们对同一个对象调用此方法1000次,这将反映1000次 我的问题是,它有效吗?我的意思是它不消耗CPU吗?!我认为唯一可能的解决方案是创建一个类并为每个对象(可能是包装器)编译它,然后该方法将只找到包装器类。但我知道这可能会使系统变得复杂,难以调试 目前的解决方案是可行的,但我认为一项工作做1000次是不符合逻辑的,即使它简单易行Java 反射还是运行时类声明?,java,performance,reflection,Java,Performance,Reflection,我有一个简单的问题 我们正在开发一个简单的应用服务器(如),该服务器在运行时接受客户端业务,而无需重新启动服务器 当用户实现其业务并将其部署到服务器时,服务器只需找到归档描述符并加载模块,就可以正常工作 有些操作需要进行大量的反射调用,对于每个调用,它们都会一次又一次地调用。例如,有一个方法,它接受任何对象,然后搜索某个由注释签名的字段,并对其进行处理,因此,如果我们对同一个对象调用此方法1000次,这将反映1000次 我的问题是,它有效吗?我的意思是它不消耗CPU吗?!我认为唯一可能的解决方案
感谢advanced。在运行时使用反射动态加载类本身并不是一个坏选择。根据您的描述,您应该提供一个可扩展的框架,允许您的客户机进行实现,并在此基础上运行他们的业务逻辑,而不是一些隐式的运行时带注释的魔术 一个很好的现实例子就是 例如,有一个方法接受任何对象,然后进行搜索 对于某个字段,witch已通过注释签名并执行一些操作 用它做生意,所以如果我们用同样的方法调用这个方法1000次 对象,这将反射1000次 在这种情况下,我建议您使用缓存。反射完成后,您将知道类名和字段名。使用
Class
类型键和方法作为值将它们存储在HashMap
中。
下次调用“方法”时,请先检查缓存