我希望 Java 7 具有 Java 8 的一项功能:方法的自动接口实现生成(避免由于反射调用导致性能不足)。我知道 Java 8 在编译时提供了生成,但我认为 Java 7 不可能(没有维护元数据文件)。所以我同意在运行时生成实现。
例子:
我有以下界面:
public interface Extractor<E> {
public Object getProperty(E aSourceObject);
}
和一个 bean 类(或接口)
public class Foo {
public int getProperty1();
public String getProperty2();
public boolean getProperty3();
}
我需要为 Foo 的每个属性提供一个 Extractor 接口的实现。类似于Foo::getProperty1
Java 8 的东西。
public class Foo1Extractor implements Extractor<Foo> {
public Object getProperty(Foo anObject) {
return anObject.getProperty1();
}
}
我应该使用JavaCompiler
(目前我几乎没有要实现的接口并且可以使用模板类)还是你有更好的解决方案?
主要要求是短的字节码生成时间和 LGPL 兼容性(可用于商业产品)。
如果可能的话,为我的案例提供一个小例子。