问题描述:    现在我有三个实体类,A,B,C。我想写一个方法,此方法的参数是一样的但是返回值根据方法中查询出来的对象进行相应的返回。就是类似于c++的函数模板一般。不知道java如何去实现啊?    谢谢各位大侠了!    public (a or b or c)getProductinfoById(HttpServletRequest request);

解决方案 »

  1.   

    有两种方法:
    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);可以根据你调用这个方法的时候返回什么值调用具体的方法。
      

  2.   

    .....
    这个是不成的吧。。java无法通过返回值的区别来实现方法的重载。。
      

  3.   


    所以正确的只有第一种,可以使用接口,也可以使用继承的方法,让A、B、C都继承同一个类,然后返回的时候返回值为基类就可以了