首页 > 解决方案 > Java 泛型参数

问题描述

我对这种情况有疑问:

public abstract class Commune<T> {
    public abstract <T> void putSettlement(T settlement);
}



public class UrbanCommune() extends Commune{
    private Cities cities = new Cities();

    @Override
    public void putSettlement(City city) {
        cities.put(City city);
    }
}

我现在正在学习泛型,所以我不明白为什么它不起作用......我该如何管理它?

标签: javagenerics

解决方案


正如T定义为整个类的泛型一样,您也不必为方法定义它:

public abstract class Commune<T> {
    public abstract void putSettlement(T settlement);
}

你必须这样定义你的类,指定类中的内容T(并删除它()!):

public class UrbanCommune extends Commune<City>{
    private Cities cities = new Cities();

    @Override
    public void putSettlement(City city) {
        cities.put(City city);
    }
}

推荐阅读