返回方法中的childclass.class指针,该方法返回class< t extensed baseclass>

mfuanj7w  于 2021-08-20  发布在  Java
关注(0)|答案(0)|浏览(198)

我有一种方法可以分析 String 并确定正确的 Class<T> 哪里 T extends BaseClass .
假设 BaseClass 扩展为 Child1 , Child2Child3 .
在我的方法中,我想做如下事情:

public <T extends BaseClass> Class<T> from(String number) {
    if (number.contains("Child1")) {
        return Child1.class;
    } else if (number.contains("Child2")) {
        return Child2.class;
    } else if (number.contains("Child3")) {
        return Child3.class;
    }
    throw new UnsupportedOperationException("Cannot recognize class from " + number);
}

问题是上述方法根本无法编译 return 声明,因为 Required type is Class<T>, provided is Class<Child1> (同上) Child2Child3 当然)。
因此,我被迫(未经检查)投下:

return (Class<T>) Child1.class;

... 这当然很好,因为 Child1.class 兼容 Class<T> .
我怎样才能以一种更干净的方式去做我想做的事情(没有警告)?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题