[英]Check type of wildcard generic object in Java
我正在編寫一個通用的Pair
類,它包含任意兩個對象(相同或不同的類型)。 我現在正在寫一個復制構造函數,但是,我遇到了一些我無法解決的錯誤。 我的代碼如下:
public class Pair<T1, T2> {
// Instance Fields
private T1 first;
private T2 second;
// Constructors
public Pair() {}
public Pair(Pair<?, ?> p) {
first = p.first; // error here
second = p.second; // error here
}
}
有沒有辦法讓我檢查一下?
在使用instanceof
的pair對象中? 如果我將p.first
為T1
它可以工作,但我想讓我的類徹底並處理它可能面臨的任何情況,例如用戶輸入錯誤的對象對類型或可能發生的其他問題。
另一個問題是,是否有在Java中使用泛型的指南或某種規則?
試試? extends T1
? extends T1
和? extends T2
? extends T2
- 這將確保您的對象屬於同一類型或子類型。
public class Pair<T1, T2> {
// Instance Fields
private T1 first;
private T2 second;
// Constructors
public Pair() {}
public Pair(Pair<? extends T1, ? extends T2> p) {
first = p.first;
second = p.second;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.