java泛型转换

使用泛型,向一个函数传入一个Object类型的数据,想让他返回为对应的泛型,可以吗?比如,<T>Tf1(Objecto,Tc){}我想把o返回成T的类型... 使用泛型,向一个函数传入一个Object类型的数据,想让他返回为对应的泛型,可以吗?

比如,<T> T f1(Object o,T c){ }我想把o返回成T的类型
展开
 我来答
samismiling
2015-07-02 · 知道合伙人软件行家
samismiling
知道合伙人软件行家
采纳数:1340 获赞数:5604

向TA提问 私信TA
展开全部
可以,在代码里强制转换即可
但是你要确定object确实是T类型的,否则会转换失败抛异常
llei32wang
推荐于2018-03-04 · TA获得超过2736个赞
知道大有可为答主
回答量:1478
采纳率:60%
帮助的人:1407万
展开全部

输入一个Object类型的数据 和 转型的类型的话可以实现,比如public static <T> T get(Object o,Class<T> clazz)

当然 <T> T f1(Object o,T c){ 也行的 只是需要通过c获得一次类的Class,

public static <T> T get(Object o,Class<T> clazz){
if(clazz!=null){
if(clazz.isInstance(o))
          return clazz.cast(o);
else
throw new RuntimeException(o +" is not a "+clazz.getName());
}
return null;
}

public static <T> T get(Object o,T t){
Class<T> clazz=(Class<T>) t.getClass();
if(clazz!=null){
if(clazz.isInstance(o))
          return clazz.cast(o);
else
throw new RuntimeException(o +" is not a "+clazz.getName());
}
return null;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式