解决方案 »

  1.   

    合理。好多API就这么设计的。
      

  2.   

    这样做没有问题,但是有更好的解决办法啊,用泛型。你可以看看java泛型的资料。
      

  3.   

    例子:
    public <T>T getValue(){
      return (T)value;
    }
      

  4.   


    大家能给个API的例子学习学习吗?虽然这样很方便,但是如果不写明返回类型,别人调用会不会不知道用什么类型来使用?
      

  5.   

    调用只要强转类型就可以了。有固定返回类型就固定好了,为什么还要用Object类型呢?或者是,返回的类型连你也不能确定是什么?
      

  6.   

    上面写了,返回值有三种类型,如果写固定类型就要写三个方法,如果写object就只用一个方法
      

  7.   

    哦,那就直接用Object+泛型呗。其实不用泛型,某些idea工具也是支持调错的。
      

  8.   

    不过我比较不理解,如果返回一个object,那么我应该用什么类型去接收呢?如果我需要一个int,那么我怎么知道这个object返回的是int而不是别的类型呢?
      

  9.   

    调用该方法的人肯定知道想要什么样的结果才会调用,自然知道返回值的类型,用Object 来接受这样的返回值的解决方案还是可以的。
      

  10.   

    Object o = getObject();
    if(o instanceof Integer) {} else if (o instanceof String) {}
      

  11.   

    假如像我说的返回值可能有三种类型,那么应该怎么去判断呢?
    我在想什么样的情况返回值才会出现3种类型,给个具体的例子.我上面说的是三种返回值,但是比如网络下载,比如socket传输,返回值都不止三种了,我说的不是一次返回三种类型,而是说返回值是一个objcet但是无法确定具体类型
      

  12.   

    上面写了,返回值有三种类型,如果写固定类型就要写三个方法,如果写object就只用一个方法int和boolean可以向上安全转型为String,所以直接返回String就可以了
      

  13.   

    其实就楼主的问题,object和泛型都是可以的,不过object强转的时候要小心转换异常等问题
      

  14.   

    可以用 instanceof 进行判断 如果是你需要的类型就 将其强转
      

  15.   

    不合理1.不好的接口设计,接口设计尽量做到不了解内部都可以使用,你这个还要必须看里面代码才知道如何使用
    2.安全,由于第一条也就带来了安全问题,比如在内部没有控制好,人家本来想要int,所以后面强转int,但是你返回的object不是int类型的装箱,则会报错.
    3.性能,调此方法返回结果时,先装了一次箱,在你得到结果使用时又做了一次拆箱.所以性能可能会有一定的影响.
      

  16.   

    这里我觉得泛型和Object多差不太多了,泛型最后不也擦除了?
      

  17.   

    合理,不过强制转换可能出错,你需要确定返回的value是否可转为此类型
      

  18.   

    如果是用 jdk 1.4 只能用 getObject() 然后自己强制转换.
    你没有看到jdbc时有 rs.getObject() 一招全通.
    通用是要付出代价的, 出来是Object每次要转换,很麻烦!! 还不知道是什么类型!!如果用1.5 比较好办 泛型就可以了: 使用方法时指定类型既可.