我有一个像这样的方法getValue
public Object getValue() {
return Integer.valueOf(0);
}
并在主方法中调用:
getValue() + 5;
这是简化的。
如何在没有强制转换的情况下使用main方法,而是在可能的情况下如何转换返回类型?
答案 0 :(得分:6)
您可以使用泛型:
public class MyClass<T extends Number>{
public T getValue(){
//do something here
}
}
MyClass<Integer> foo = new MyClass<Integer>();
foo.getValue()+5;
答案 1 :(得分:1)
如果你的方法返回一个Object,你将不得不在某个时刻投射以使用Integer,Double等类特定的函数。
答案 2 :(得分:0)
我猜你不应该这样做,如果你写了这个函数public Object getValue() 那么为什么不将它改为public Integer getValue()并返回Integer。
如果你还期望其他类型,那么重载方法public String getValue(),public Double getValue()等。使用工厂模式来决定调用哪个方法。
如果您不想进行强制转换,则不能使用Object作为返回类型,仍然使用getValue()+ 5;
我也喜欢elivine的回复