有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我有这样一个方法getValue

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

}

以及主方法中的调用:

getValue() + 5;

这是简化的

如何在不强制转换main方法的情况下实现这一点,而是在可能的情况下如何强制转换返回类型


共 (3) 个答案

  1. # 1 楼答案

    如果您编写了这个函数public Object getValue(),我想您不应该这样做 那么为什么不将其更改为public Integer getValue()并返回Integer呢

    如果还需要其他类型,则重载方法public String getValue()、public Double getValue()等。使用工厂模式决定调用哪个方法

    如果不想强制转换,则不能将对象用作返回类型,而仍然使用getValue()+5

    我也喜欢elivine的反应

  2. # 2 楼答案

    您可以使用泛型:

    public class MyClass<T extends Number>{
    
    
      public T getValue(){
        //do something here
      }
    }
    
    MyClass<Integer> foo = new MyClass<Integer>();
    foo.getValue()+5;
    
  3. # 3 楼答案

    如果您的方法返回一个对象,您将不得不在某个点强制转换,以使用Integer、Double等类特定函数