我持有不同的Java類型的值一起製作低劣的容器對象(字符串,布爾值等)Java泛型和類型轉換
public class BadlyCreatedClass {
public Object get(String property) {
...;
}
};
我們以這種方式
String myStr = (String) badlyCreatedObj.get("abc");
Date myDate = (Date) badlyCreatedObj.get("def");
從中提取值
我不得不使用這個對象來編寫一些新的代碼,我想看看是否有乾淨的方法來做到這一點。更具體地說,從下面哪個方法是優選的?
明確的轉換
String myStr = (String) badlyCreatedObj.get("abc")
Date myDate = (Date) badlyCreatedObj.get("def");
使用通用鑄
public <X> X genericGet(String property) {
}
public String getString(String property) {
return genericGet(property);
}
public Date getDate(String property) {
return genericGet(property);
}
使用Class.cast
<T> T get(String property, Class<T> cls) {
;
}
我有通過幾個相關的問題上SO Java generic function: how to return Generic type走了,Java generic return type個個好像說的這種類型轉換是危險的,但我沒有看到三者之間相差太大,給你希望這個哪種方法?
感謝