[英]Recovering lost types while avoiding 'unchecked cast' warning
我有一個對象,其中泛型T
的類型在某個時候通過一個巨大的接口鏈丟失了。 我想知道是否可以使用函數通過檢查類型來重新獲得某種類型的安全性:
private T metaData; // type of T is lost
public <R> R getMetaData(Class<R> className) {
assert className.isInstance(metaData);
return (R) metaData;
}
但是,此實現會產生“未經檢查的強制轉換:'T' to 'R'”警告。 是否有避免此警告的實現,或者是抑制它的唯一解決方案?
您不必使用()
強制轉換為R
,您可以直接使用Class
代替。 喜歡,
return className.cast(metaData);
這不會在此處引起任何警告。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.