我正在研究复杂分布式 OSGi 系统的配置方案。
我需要在 Java 7 上从库代码到应用程序代码进行以下转换(下面的代码不正确):
void someFrameworkMethod(...) {
....
// arg 2 is of type Object
// service is of type SimpleStrongTypedManagedService<?>
// arg 3 is of type Class<?>
updateSimple( service, entry.getValue(), desc.getClazz());
....
}
private <T> void updateSimple( SimpleStrongTypedManagedService<T> service,
T value,
Class<T> clazz) {
...
}
我可以访问有clazz
问题的。有什么技巧可以让编译器“读懂我的想法”(我在上面尝试做的事情)还是我必须做反射/ MethodHandle 诡计?
我决定只将其存储MethodHandle
在我的库代码中,而不是Class<?>
为了继续使用。不过仍然对解决方案感兴趣。