java - 如何使用泛型类的定义类型的方法?

标签 java generics

public class Team<AbstractMember> {

    public int getPoints() {
        int points = 0;
        for (AbstractMember member : memberList) {
            points += member.**getPoints()**;
        }
        return points;
    }
}

我想检查成员的点并返回它们,但事实上,AbstractMember 是泛型类的类型,因此禁用了 member.getPoints() 方法。 Eclipse 说 AbstractMember 类型的 getPoints() 方法未定义

public abstract class AbstractMember{
    private String name;
    private int points;

    public int getPoints() {
        return points;
    }
}

如何使用泛型类的定义类型的方法?

最佳答案

更改此声明

public class Team<AbstractMember>

public class Team<T extends AbstractMember>

然后,在您的代码中,您应该使用 T 来引用类 Type。例如,您必须更改 for 循环

for (AbstractMember member : memberList)

for (T member : memberList) {

关于java - 如何使用泛型类的定义类型的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17012438/

相关文章:

swift - 符合具有通用功能的协议(protocol)的变量

java - 在 Java 中创建通用数组

java - 接口(interface)、参数化类型和集合

Java:将UTC日期转换为本地时区

java - 需要正则表达式来对此进行模式化

java - org.testng.TestNGException : Cannot find class in classpath

c# - new() 在 `where T: new()?` 中做了什么

java - 密码验证,一次一个正则表达式模式

Java:Maven clean 后构建中缺少 log4j.properties

java - 用于存储字节和执行 InputStream.read() 的通用 FIFO 类 [Java 5 及更高版本]