方法返回类型直接用object合理吗? javaobject方法 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 合理。好多API就这么设计的。 这样做没有问题,但是有更好的解决办法啊,用泛型。你可以看看java泛型的资料。 例子:public <T>T getValue(){ return (T)value;} 大家能给个API的例子学习学习吗?虽然这样很方便,但是如果不写明返回类型,别人调用会不会不知道用什么类型来使用? 调用只要强转类型就可以了。有固定返回类型就固定好了,为什么还要用Object类型呢?或者是,返回的类型连你也不能确定是什么? 上面写了,返回值有三种类型,如果写固定类型就要写三个方法,如果写object就只用一个方法 哦,那就直接用Object+泛型呗。其实不用泛型,某些idea工具也是支持调错的。 不过我比较不理解,如果返回一个object,那么我应该用什么类型去接收呢?如果我需要一个int,那么我怎么知道这个object返回的是int而不是别的类型呢? 调用该方法的人肯定知道想要什么样的结果才会调用,自然知道返回值的类型,用Object 来接受这样的返回值的解决方案还是可以的。 Object o = getObject();if(o instanceof Integer) {} else if (o instanceof String) {} 假如像我说的返回值可能有三种类型,那么应该怎么去判断呢?我在想什么样的情况返回值才会出现3种类型,给个具体的例子.我上面说的是三种返回值,但是比如网络下载,比如socket传输,返回值都不止三种了,我说的不是一次返回三种类型,而是说返回值是一个objcet但是无法确定具体类型 上面写了,返回值有三种类型,如果写固定类型就要写三个方法,如果写object就只用一个方法int和boolean可以向上安全转型为String,所以直接返回String就可以了 其实就楼主的问题,object和泛型都是可以的,不过object强转的时候要小心转换异常等问题 可以用 instanceof 进行判断 如果是你需要的类型就 将其强转 不合理1.不好的接口设计,接口设计尽量做到不了解内部都可以使用,你这个还要必须看里面代码才知道如何使用2.安全,由于第一条也就带来了安全问题,比如在内部没有控制好,人家本来想要int,所以后面强转int,但是你返回的object不是int类型的装箱,则会报错.3.性能,调此方法返回结果时,先装了一次箱,在你得到结果使用时又做了一次拆箱.所以性能可能会有一定的影响. 这里我觉得泛型和Object多差不太多了,泛型最后不也擦除了? 合理,不过强制转换可能出错,你需要确定返回的value是否可转为此类型 如果是用 jdk 1.4 只能用 getObject() 然后自己强制转换.你没有看到jdbc时有 rs.getObject() 一招全通.通用是要付出代价的, 出来是Object每次要转换,很麻烦!! 还不知道是什么类型!!如果用1.5 比较好办 泛型就可以了: 使用方法时指定类型既可. 求助servlet怎么配置,更具体点是web-xml怎么配置 字符串,求教 JAVA中子窗口关闭,父窗口也关闭的问题 看哪位高手能解决这个问题:servlet中的socket问题。 初学监听请指教(求代码). 高手门指教!!进销存软件中的先进先出问题???急急啊!!谢谢了 为什么Applet上显示的汉字都变成一个一个方块了? 看这个程序(Java基础题,我哪里不对?) 请问:有没有JDK的,编译和运行时错误信息一览表下载? 怎么把主方法里面的代码移到外面来 求大神帮忙哈。实现网上多线程下载但是出现问题? 异常和返回值的使用场景。
public <T>T getValue(){
return (T)value;
}
大家能给个API的例子学习学习吗?虽然这样很方便,但是如果不写明返回类型,别人调用会不会不知道用什么类型来使用?
if(o instanceof Integer) {} else if (o instanceof String) {}
我在想什么样的情况返回值才会出现3种类型,给个具体的例子.我上面说的是三种返回值,但是比如网络下载,比如socket传输,返回值都不止三种了,我说的不是一次返回三种类型,而是说返回值是一个objcet但是无法确定具体类型
2.安全,由于第一条也就带来了安全问题,比如在内部没有控制好,人家本来想要int,所以后面强转int,但是你返回的object不是int类型的装箱,则会报错.
3.性能,调此方法返回结果时,先装了一次箱,在你得到结果使用时又做了一次拆箱.所以性能可能会有一定的影响.
你没有看到jdbc时有 rs.getObject() 一招全通.
通用是要付出代价的, 出来是Object每次要转换,很麻烦!! 还不知道是什么类型!!如果用1.5 比较好办 泛型就可以了: 使用方法时指定类型既可.