1
我有一對夫婦從一個泛型類型轉換爲另一種方法的類,但我想回到原來的值,如果兩個:參數類型和返回類型是相同的。我能想到的最佳選擇是將參數類型轉換並將其包裝在try catch語句中,但對我來說這似乎很髒。鑄造仿製藥
public WK wrapKey(K key) {...
public abstract class MyClass<K, V extends Comparable, WK, WV> extends BaseClass<Map<WK, WV>, KeyValueBean<K, V>> {
...
public WK wrapKey(K key) {
try {
return (WK) key;
} catch (Exception e) {
return null;
}
}
public WV wrapValue(V value) {
try {
return (WV) value;
} catch (Exception e) {
return null;
}
}
我認爲其他選項可以是指定類類型的構造函數或setter方法參數,然後使用isAssignableFrom:
public WV wrapValue(V value) {
if (value.class.isAssignableFrom(this.getWrappedValueClass())){
return WK(V);
}
return null;
}
有沒有其他辦法?
當心類型擦除。 – SLaks
我不認爲這些方法中的任何一種都可以實際工作。我懷疑你太喜歡了。 –