我想从列表中返回类的对象(作为参数传递给方法)。同样在返回时,我需要将对象转换为作为参数传递的类。我的问题是我尝试按照以下给出的方法进行操作,但是它不正确,因为它给了我编译器错误“ classToFind无法解析为类型”

private <T extends myClass> T findObject(List<JAXBElement<? extends myClass>> list,
          Class<? extends myClass> classToFind) {
    for (JAXBElement<? extends myClass> current : list) {
        if(current.getClass() == classToFind) {
               return (classToFind) currentClass; // error "classToFind cannot be resolved to a type"
        }
    }
    return null;
}

最佳答案

return classToFind.cast(current)。与其他解决方案不同,这是类型安全的,不需要SuppressWarnings。但是,很明显,无论如何,第二个参数都必须更改为Class<T> classToFind

关于java - 方法的java泛型返回类型应该与传递的传递参数相同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18964476/

10-11 15:01