java中返回值问题

liwen19840617 2009-06-08 11:35:09
问题描述:

现在我有三个实体类,A,B,C。我想写一个方法,此方法的参数是一样的但是返回值根据方法中查询出来的对象进行相应的返回。就是类似于c++的函数模板一般。不知道java如何去实现啊?

谢谢各位大侠了!

public (a or b or c)getProductinfoById(HttpServletRequest request);
...全文
49 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lvsh870228 2009-06-08
  • 打赏
  • 举报
回复
用object
lhx1026 2009-06-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lhx1026 的回复:]
引用 2 楼 lhx1026 的回复:
有两种方法:
1、可以用接口实现。。。比如接口D,然后A类、B类、C类都实现了接口D。在返回值的时候可以这样

Java codepublicD getProductinfoById(HttpServletRequest request);

这样的话就可以根据方法中查询出来的对象进行相应的返回。

2、可以使用重载的方法:
Java codepublicA getProductinfoById(HttpServletRequest request);publicB getProductinfoById(HttpServletRequest requ…
[/Quote]

所以正确的只有第一种,可以使用接口,也可以使用继承的方法,让A、B、C都继承同一个类,然后返回的时候返回值为基类就可以了
knightzhuwei 2009-06-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lhx1026 的回复:]
2、可以使用重载的方法:

Java code
public A getProductinfoById(HttpServletRequest request);
public B getProductinfoById(HttpServletRequest request);

[/Quote]
.....
这个是不成的吧。。java无法通过返回值的区别来实现方法的重载。。
lhx1026 2009-06-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lhx1026 的回复:]
有两种方法:
1、可以用接口实现。。。比如接口D,然后A类、B类、C类都实现了接口D。在返回值的时候可以这样

Java codepublicD getProductinfoById(HttpServletRequest request);

这样的话就可以根据方法中查询出来的对象进行相应的返回。

2、可以使用重载的方法:
Java codepublicA getProductinfoById(HttpServletRequest request);publicB getProductinfoById(HttpServletRequest request);publicC getProductinfo…
[/Quote]

第二种方法写错了。。。不好意思。。第二种是错误的。
lhx1026 2009-06-08
  • 打赏
  • 举报
回复
有两种方法:
1、可以用接口实现。。。比如接口D,然后A类、B类、C类都实现了接口D。在返回值的时候可以这样

public D getProductinfoById(HttpServletRequest request);


这样的话就可以根据方法中查询出来的对象进行相应的返回。

2、可以使用重载的方法:

public A getProductinfoById(HttpServletRequest request);
public B getProductinfoById(HttpServletRequest request);
public C getProductinfoById(HttpServletRequest request);


可以根据你调用这个方法的时候返回什么值调用具体的方法。
knightzhuwei 2009-06-08
  • 打赏
  • 举报
回复
我觉得这估计是不成的 可以让返回的对象都继承自相同的基类 用多态来解决这个问题

81,092

社区成员

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

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