Javagenerics – 类型参数String隐藏类型String
在我的界面中:
public Result query(T query)
在我的第一个子类中:
public Result query(HashMap queryMap)
在我的第二个子类中:
public Result query(String queryStr)
第一个子类根本没有编译警告,而第二个子类有:类型参数String隐藏类型String? 我理解我的参数是由generics类型隐藏的。 但是我想知道究竟发生了什么?
它认为你正在尝试创建一个类型参数 – 一个变量 – 其名称为String
。 我怀疑你的第一个子类根本不导入java.util.HashMap
。
在任何情况下,如果T
是您的接口的类型参数 – 它可能应该是 – 那么您根本不应该在子类中包含
。 它应该是
public interface Interface { public Result query(T query); } public class Subclass implements Interface { ... public Result query(String queryStr) { ... } }