当Object是Java中方法的返回类型时,返回特定类型

时间:2012-04-14 02:09:24

标签: java object methods return

我有一个像这样的方法getValue

public Object getValue() {
     return Integer.valueOf(0);

}

并在主方法中调用:

getValue() + 5;

这是简化的。

如何在没有强制转换的情况下使用main方法,而是在可能的情况下如何转换返回类型?

3 个答案:

答案 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的回复