我持有不同的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个个好像说的这种类型转换是危险的,但我没有看到三者之间相差太大,给你希望这个哪种方法?
感谢