我定义了一个方法,abc(Object b)
通过参数b,判断如果是String ,则返回 String 类型,如果是int 则返回 int
可以这样的吗?我尝试了 public Object abc(Object b) 但是无论最终返回什么值,它的类型都成了Object.怎么解决?

解决方案 »

  1.   

    首先你的标题的问题是否定的。然后你返回的那个object,你可以在调用函数里面进行判断和强制类型转换啊。
    不过,基于低耦合高内聚的思想,你怎么会出现这种需要返回不同类型的返回值的情况呢
      

  2.   

    使用public Object abc(Object b),不管传入还是返回的任何类型都会自动向上转型为Object类型。
    所以需要使用泛型,如下: public  <T> T  abc(T b){
    return b; 
     }
      

  3.   

    返回类型不定就是弱类型,易用性绝对大打折扣,不适合java
      

  4.   

    java貌似没有提供这个。c++里面使用模板实现你说的功能,c#里面则是通过泛型实现的
      

  5.   

    很简单啊定义两个方法就行了。int abc(int i){
    ...
    }String abc(String s{....
    }
      

  6.   

    java也有泛型,但是最终要做显式的强制类型转换才能达到你说的效果
      

  7.   

    使用java里的泛型,你就可以确定数据的类型了