Java Guice:bind类<&燃气轮机;上课<&燃气轮机;
我需要为编译时未知的类配置绑定。此外,这些类必须由不同的类装入器装入。以下片段大致描述了我的意图:Java Guice:bind类<&燃气轮机;上课<&燃气轮机;,java,generics,guice,inject,Java,Generics,Guice,Inject,我需要为编译时未知的类配置绑定。此外,这些类必须由不同的类装入器装入。以下片段大致描述了我的意图: Classloader cl = findClassloader(...); Class<?> key = cl.loadClass(keyClassName); Class<?> impl = cl.loadClass(implClassName); 但是,与通配符类类型一样,这不起作用。简单地告诉Guice完全限定的类名(我想这是一种从属性文件加载绑定的机制)也不起作
Classloader cl = findClassloader(...);
Class<?> key = cl.loadClass(keyClassName);
Class<?> impl = cl.loadClass(implClassName);
但是,与通配符类类型一样,这不起作用。简单地告诉Guice完全限定的类名(我想这是一种从属性文件加载绑定的机制)也不起作用,因为Guice不知道使用哪个类加载器。泛型是一个很好的工具,可以确保您所做的事情是正确的,但它们不是为这样的复杂情况设置的。幸运的是,这里根本不需要泛型,编译后它们将被删除 试试这个:
bind(key).to((Class) impl);
或将其包装在警告抑制包装中:
@SuppressWarnings({"rawtypes"})
void bindUnsafely(Class<?> key, Class<?> impl) {
bind(key).to((Class) impl);
}
@SuppressWarnings({“rawtypes”})
void bindensafely(类键,类impl){
绑定到((类)impl);
}
@SuppressWarnings({"rawtypes"})
void bindUnsafely(Class<?> key, Class<?> impl) {
bind(key).to((Class) impl);
}