在我的界面中:
public <T> Result query(T query)
在我的第一个子类中:
public <HashMap> Result query(HashMap queryMap)
在我的第二个子类中:
public <String> Result query(String queryStr)
第一个子类根本没有编译警告,而第二个子类有:类型参数字符串隐藏类型字符串?我知道我的参数被泛型类型隐藏。但我想了解到底发生了什么?
它认为您正在尝试创建一个类型参数——一个变量——其名称为String
. 我怀疑您的第一个子类根本不 import java.util.HashMap
。
无论如何,如果T
是你的接口的类型参数——它可能应该是——那么你根本不应该<String>
在子类中包含。它应该只是
public interface Interface<T> {
public Result query(T query);
}
public class Subclass implements Interface<String> {
...
public Result query(String queryStr) {
...
}
}