gpt4 book ai didi

java - 在 xmlbean 中使用带有类型参数的泛型类

转载 作者:太空宇宙 更新时间:2023-11-04 13:57:14 27 4
gpt4 key购买 nike

我搜索了一个与 bean 一起使用的解决方案,如下所示:

public class CompositeMapper<T extends Model, U extends Command, C extends Context> implements Mapper<T, U, C>
{
protected List<Mapper<T, U, C>> mappers;

/* ... */
}

我会使用这样的bean:

<bean id="beanMapper" class="com.test.CompositeMapper">
<property name="mappers">
<list value-type="com.test.Mapper">
<bean class="com.test.Mapper1"/>
<bean class="com.test.Mapper2"/>
<bean class="com.test.Mapper2"/>
</list>
</property>
</bean>

奇怪的是,这个 bean 有效。但我可以使用在通用情况下输入的任何内容,因此不是专门的。

但我找不到输入通用对象的解决方案 com.test.Mapper<com.test.MyModel, com.test.MyCommand, com.test.MyContext> ,这在值类型中是不可能的。除了创建一个空类来替换 com.test.CompositeMapper 之外,我没有找到其他解决方案在我的 bean 里。例如:

public class MyCompositeMapper extends CompositeMapper<MyModel, MyCommand, MyContext>
{
public MyCompositeMapper()
{
super();
}
}

但是我会避免创建此类,这可能吗?

最佳答案

不,value-type 用于类型转换,因此请注意,如果 com.test.Mapper.class.isAssingnableFrom(com.test.Mapper1.class) 返回 true,它将被接受。

但是,您可以使用 Java 配置类来强制执行泛型类型检查。

关于java - 在 xmlbean 中使用带有类型参数的泛型类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29695130/

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