gpt4 book ai didi

java - Guice:将 Class 绑定(bind)到 Class

转载 作者:行者123 更新时间:2023-11-30 03:41:55 27 4
gpt4 key购买 nike

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

Classloader cl = findClassloader(...);
Class<?> key = cl.loadClass(keyClassName);
Class<?> impl = cl.loadClass(implClassName);

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

bind(key).to(impl);

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

最佳答案

泛型是一个很好的工具,可以确保您做正确的事情,但它们不适用于像这样的复杂情况。幸运的是,这里根本不需要泛型,而且它们无论如何都会在编译时被删除。

试试这个:

bind(key).to((Class) impl);

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

@SuppressWarnings({"rawtypes"})
void bindUnsafely(Class<?> key, Class<?> impl) {
bind(key).to((Class) impl);
}

关于java - Guice:将 Class<?> 绑定(bind)到 Class<?>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26650377/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com