栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

什么时候应该使用Class 5的java 5方法强制转换?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

什么时候应该使用Class 5的java 5方法强制转换?

这些陈述是不同的。强制转换方法是常规方法调用(

invokevirtual
JVM指令),而另一种是语言构造(
checkcast
指令)。在上面显示的情况下,应使用第二种形式:
(TrTuDocPackTypeDto)packDto

cast
当您具有某个变量类型的Class实例时,该方法将用于泛型的反射编程中。您可以这样使用它:

public <T> Set<T> find(Class<T> clz, Filter criteria) {  List<?> raw = session.find(clz, criteria);   Set<T> safe = new HashSet<T>();  for (Object o : raw)     safe.add(clz.cast(o));  return safe;}

这为您提供了一种避免将原始类型强制转换为泛型类型的错误选择的安全方法:

List raw = new ArrayList();...return (List<Widget>) raw;

编译器将警告您,

Unchecked cast from List toList<Widget>
这意味着在省略号中,可能有人将a添加
Gadget
到了原始列表,
ClassCastException
当调用者遍历返回的(假定)
Widget
实例列表时,最终将导致a



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/440442.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号