[英]Java generics - The type parameter String is hiding the type String
在我的界面中:
public <T> Result query(T query)
在我的第一個子類中:
public <HashMap> Result query(HashMap queryMap)
在我的第二個子類中:
public <String> Result query(String queryStr)
第一個子類根本沒有編譯警告,而第二個子類有:類型參數String隱藏類型String? 我理解我的參數被泛型類型隱藏了。 但是我想知道究竟發生了什么?
它認為你正在嘗試創建一個類型參數 - 一個變量 - 其名稱為String
。 我懷疑你的第一個子類根本不導入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) {
...
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.