gpt4 book ai didi

Java 泛型 - 在方法参数中使用封闭类的泛型类型参数

转载 作者:行者123 更新时间:2023-11-30 09:50:24 26 4
gpt4 key购买 nike

我有一个简单的泛型类,它接受一个泛型类型参数,它与声明为该类的类型参数的参数相同:

import java.lang.reflect.AnnotatedElement;
import java.lang.reflect.Method;

public abstract class SimpleClass<T extends AnnotatedElement>
{

public void operate()
{
Method m = null;
this.doSomething(m); // Error : SimpleClass.java:[34,10] doSomething(T) in SimpleClass<T> cannot be applied to (java.lang.reflect.Method)
}
protected abstract void doSomething(T annotatedElement);
}

此代码在以下行无法编译:

this.doSomething(m); 

出现此错误:

Error : SimpleClass.java:[34,10] doSomething(T) in SimpleClass<T> cannot be applied to (java.lang.reflect.Method)

我是不是漏掉了什么?类型参数 T 被标记为 T extends AnnotatedElement。因此,我希望使用 java.lang.reflect.Method 参数调用 doSomething 能够成功编译。

最佳答案

方法实现了 AnnotatedElement,但这并不要求 T 是一个方法。如果类被声明为 SimpleClass<Constructor> 会怎样? ?满足<T extends AnnotatedElement> , 但不支持从 Method 的转换.

关于Java 泛型 - 在方法参数中使用封闭类的泛型类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5182456/

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