java 返回的类型能多样么?

longyun015 2011-03-24 06:38:27

我定义了一个方法,abc(Object b)
通过参数b,判断如果是String ,则返回 String 类型,如果是int 则返回 int
可以这样的吗?

我尝试了 public Object abc(Object b) 但是无论最终返回什么值,它的类型都成了Object.

怎么解决?
...全文
114 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
longyun015 2011-03-24
  • 打赏
  • 举报
回复

[Quote=引用 12 楼 coolfatman 的回复:]

引用 9 楼 longyun015 的回复:

因为我后面用到的方法,由于返回的类型不同而需要强制转,代码有点长。


不是让你写成两个方法了吗,这就是标准的方法重载啊。 如果你代码需要公用一部分,把公用的放到私有函数中就可以了。
[/Quote]

哎,我本来也是用两个的,就突然想起有没有可能一个通用呢。果然还是没办法。
jaygo311 2011-03-24
  • 打赏
  • 举报
回复
使用java里的泛型,你就可以确定数据的类型了
Coolfatman 2011-03-24
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 longyun015 的回复:]

因为我后面用到的方法,由于返回的类型不同而需要强制转,代码有点长。
[/Quote]

不是让你写成两个方法了吗,这就是标准的方法重载啊。 如果你代码需要公用一部分,把公用的放到私有函数中就可以了。
ZangXT 2011-03-24
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yanyuegongzuoshi 的回复:]

java貌似没有提供这个。c++里面使用模板实现你说的功能,c#里面则是通过泛型实现的
[/Quote]
模版实现不了这种功能。
方法调用之前要确定类型,而不是方法中选择使用不同类型。
longyun015 2011-03-24
  • 打赏
  • 举报
回复
因为我后面用到的方法,由于返回的类型不同而需要强制转,代码有点长。
beannian 2011-03-24
  • 打赏
  • 举报
回复
java也有泛型,但是最终要做显式的强制类型转换才能达到你说的效果
Coolfatman 2011-03-24
  • 打赏
  • 举报
回复
很简单啊定义两个方法就行了。

int abc(int i){
...
}

String abc(String s{

....
}



beannian 2011-03-24
  • 打赏
  • 举报
回复
java貌似没有提供这个。c++里面使用模板实现你说的功能,c#里面则是通过泛型实现的
dracularking 2011-03-24
  • 打赏
  • 举报
回复
返回类型不定就是弱类型,易用性绝对大打折扣,不适合java
fuck_my_life 2011-03-24
  • 打赏
  • 举报
回复
使用public Object abc(Object b),不管传入还是返回的任何类型都会自动向上转型为Object类型。
所以需要使用泛型,如下:

public <T> T abc(T b){
return b;
}
孤鸿掠影 2011-03-24
  • 打赏
  • 举报
回复
首先你的标题的问题是否定的。

然后你返回的那个object,你可以在调用函数里面进行判断和强制类型转换啊。
不过,基于低耦合高内聚的思想,你怎么会出现这种需要返回不同类型的返回值的情况呢。。。
longyun015 2011-03-24
  • 打赏
  • 举报
回复
什么意思?
awusoft 2011-03-24
  • 打赏
  • 举报
回复
可以参考一下泛型

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧