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