首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Guice:将Class<?>绑定到Class<?>

Guice:将Class<?>绑定到Class<?>
EN

Stack Overflow用户
提问于 2014-10-30 10:18:50
回答 1查看 397关注 0票数 1

我需要为编译时不知道的类配置绑定。此外,这些类必须由不同的类加载器加载。下面的片段大致描述了我的意图:

代码语言:javascript
复制
Classloader cl = findClassloader(...);
Class<?> key = cl.loadClass(keyClassName);
Class<?> impl = cl.loadClass(implClassName);

现在,我想简单地将键类绑定到impl类,如

代码语言:javascript
复制
bind(key).to(impl);

但是,与通配符类类型一样,这不起作用。简单地告诉Guice完整的限定类名(我想有一种机制可以从属性文件加载绑定)也是行不通的,因为guice不知道使用哪个类加载器。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-31 06:35:44

泛型是一个很好的工具,可以确保您做的是正确的事情,但是它们不适合这样复杂的情况。幸运的是,泛型在这里一点也不需要,编译时就会擦除它们。

试试这个:

代码语言:javascript
复制
bind(key).to((Class) impl);

或者将其包装在警告抑制的包装中:

代码语言:javascript
复制
@SuppressWarnings({"rawtypes"})
void bindUnsafely(Class<?> key, Class<?> impl) {
  bind(key).to((Class) impl);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26650377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档