首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

怎的使用泛型,根据条件,返回不同的类型

2011-11-20 
怎样使用泛型,根据条件,返回不同的类型?大家好,怎样根据条件,返回不同的类型呢?比如,有一个方法伪代码如下

怎样使用泛型,根据条件,返回不同的类型?
大家好,怎样根据条件,返回不同的类型呢?比如,有一个方法伪代码如下:

Java code
public StringOrDate formatSome(isReturnDate){     Date d = new Date();     if(isReturnDate == true)    {        return d;    }    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm");    String str = sdf.format(d);    return str;}


我的需求是这样,如果传入的参数为true,则返回Date对象d;如果为false,则返回String对象。可能用泛型可以解决,怎么解决呢?

[解决办法]
好像不可以啊~泛型最终调用的时候还是要确定类型的……一个函数怎么能返回不同的两种类型呢?
我觉得如果出现这样的情况,就可以考虑重新设计了
[解决办法]
泛型也得你传一个类型给泛型才能确定泛型的类型嘛

比如
Java code
public <T> T dos(T a)        {            System.out.println(a);            return a;        }        public static void main(String argv[])        {            Test t = new Test();            t.dos("s");        }
[解决办法]
你干脆直接返回一个Object得了。。出来再转型
[解决办法]
3楼的老兄说的有道理,你直接返回Object类型,然后用instanceof判断不行吗
[解决办法]
你这样 泛型不可以解决的 。。。。
[解决办法]
那是不可能的,Java 中的泛型需要在编译期确定类型,并不能在运行期确定。
[解决办法]
我感觉也是,返回一个object类型多强,这样你可以返回你想要的每种类型!不过,在转化的过程可能回出现类型转化异常,不过都是小问题了!相信楼主能解决这点小异常
[解决办法]
你这个代码完全可以啊
有什么问题啊?
泛型就是这么用的
[解决办法]
完全没必要用泛型。 if(isReturnDate == true) -> if(isReturnDate)

热点排行