Class.asSubclass浅谈

Docker新手必看:解决‘Unable to find image’错误的完整指南 本文针对Docker新手常见的‘Unable to find image’错误,提供了完整的排查与解决指南。文章深入剖析了权限不足、网络连接失败、Docker服务未运行等核心原因,并给出了将用户加入docker组、配置镜像加速器等实用解决方案,帮助读者彻底理解并解决镜像拉取问题。 阅读详情
  1. public <U> Class<? extends U> asSubclass(Class<U> clazz)  

这是java.lang.Class中的一个方法,作用是将调用这个方法的class对象转换成由clazz参数所表示的class对象的某个子类。举例来说,

  1. List<String> strList = new ArrayList<String>();  
  2. Class<? extends List> strList_cast = strList.getClass().asSubclass(List.class);  

 

上面的代码将strList.getClass()获取的class对象转换成Class<? extends List>,这么做似乎没有什么意义,因为我们很清楚strList.getClass()获取的class对象就是ArrayList,它当然是List.class的一个子类;


但有些情况下,我们并不能确知一个class对象的类型,典型的情况是Class.forName()获取的class对象:

Class.forName()的返回类型是Class<?>,但这显然太宽泛了,假设我们需要List.class类型的class对象,但我们传递给Class.forName的参数是未知的(可能是"java.lang.String",也可能是"java.util.ArrayList"),这时我们就可以用到asSubclass()这个方法了,如下:

  1. Class.forName("xxx.xxx.xxx").asSubclass(List.class).newInstance();  


 当xxx.xxx.xxx是List的子类时,正常执行,当不是List的子类时,抛出ClassCastException,这时我们可以做些别的处理;如果我们查看Class.asSubclass()在JDK中的中的引用的话,会发现这种用法有很多。

这里有必要说下 instanceof 关键字,它的用法用于判断一个Object是否是某个超类或者接口的一个子类或者实现类(不一定是直接超类或者直接接口),如下:

  1. interface IFace {  
  2.       
  3. }  
  4.   
  5. class IFaceImpl implements IFace {  
  6.       
  7. }  
  8.   
  9. class IFaceImplExt extends IFaceImpl {  
  10.       
  11. }  
  12.   
  13. System.out.println(new IFaceImpl() instanceof IFace); // true  
  14. System.out.println(new IFaceImplExt() instanceof IFace); // true  



asSubclass用于窄化未知的Class类型的范围,而instanceof用于判断一个对象引用是否是一个超类或者接口的子类/实现类,如果试图将instanceof用于Class类型的判断会引起编译错误。

  1. // both will cause compliration error  
  2. System.out.println(IFaceImpl.class instanceof IFace);  
  3. System.out.println(IFaceImplExt.class instanceof IFace.class);  

 

转载:http://jasonhan-sh-hotmail-com.iteye.com/blog/1838413

Arduino、ESP32驱动AS3935数字闪电传感器(闪电传感器) 闪电传感器采用AMS独具创新的AS3935数字闪电传感芯片与Coilcraft的MA5532-AE专用天线,可在室内或室外,安全地检测方圆40km范围内发生闪电的距离,闪电相对强度与统计闪电发生次数。 阅读详情

相关推荐

永磁同步电机高效标定技术:从理论到实践的全面解析

本文全面解析永磁同步电机高效标定技术,从MTPA标定、弱磁区优化到初始角校准,详细介绍了理论原理和实战技巧。针对新能源汽车应用场景,提供标定系统集成要点和AI辅助优化方案,帮助工程师提升电机性能标定效率与精度。

weixin_28452161的博客 500

Java反射方法asSubclass判断一个类是否是另一个类的子类

在Java中我们判断一个类是否是另外一个类的实例对象通常使用instanceof a instanceof B 另外我们还有一个方法是asSubclass,它将一个类转换成另外一个的实例,如果转换异常就会抛出ClassCastException异常,也就是这个类不是另外一个类的实例;所以我们可以通过它抛出异常的方式来判断一个类是否是另外一个类的实例; import java.lang...

OceanSky的专栏 9006

北邮LaTeX论文模板避坑指南:从TEX Live安装到完美编译(2024最新版)

本文详细介绍了2024年最新版北邮LaTeX论文模板的使用指南,涵盖TEX Live安装、中文配置、模板优化及常见问题解决方案。针对Windows系统用户,提供TeX Live与CTeX的对比分析,并给出高效排版和终稿检查的实用技巧,帮助研究生快速掌握LaTeX论文写作。

read5的博客 463

assubclass_Java类class asSubclass()方法及示例

assubclass 类类asSubclass()方法 (Class class asSubclass() method) asSubclass() method is available in java.lang package. asSubclass()方法在java.lang包中可用。 asSubclass() method casts this Class object to deno...

cumtb2002的博客 863

嘉立创EDA vs Altium Designer:新手如何选择?从界面到实战全对比

本文全面对比了嘉立创EDA与Altium Designer(AD)两大PCB设计工具,从设计哲学、界面交互、封装库管理、设计规则引擎、协作功能到成本生态六大维度进行深入分析。嘉立创EDA以极简设计和云端协作为特色,适合学生和创客快速上手;而AD则凭借专业级精准控制,成为高端电子设计的行业标准。通过实战案例和详细对比表格,帮助新手根据项目需求选择合适的EDA工具。

weixin_30296405的博客 720

Flink CDC 1.18.1 Oracle 数据同步到postgresql

8、修改Flink的配置文件,主要是各种服务的绑定地址,默认为localhost,统统改为0.0.0.0,如:rest.address: 0.0.0.0 #localhost。将flink-sql-connector-oracle-cdc-3.0.1.jar复制到flink-1.18.1/lib目录中。6、下载 flink-connector-jdbc-3.1.1-1.17.jar,postgresql-42.7.3.jar。7、安装postgresql就不说了,相信你已经有了数据库了。

ynzhangyao的专栏 1799

java assubclass_类方法 isAssignableFrom、instanceof 和 asSubclass

类方法 isAssignableFrom、instanceof 和 asSubclassSpring 框架 CollectionFactory 的 asEnumType 方法使用 "类.asSubclass()",代码如下:private static Class extends Enum> asEnumType(Class> enumType) {Assert.notNull(enu...

weixin_31302227的博客 456

深入解析Incapsula reese84的生成机制与绕过策略

本文深入解析了Incapsula reese84的生成机制与绕过策略。reese84是一种基于客户端JavaScript挑战的Web安全防护,通过动态算法收集浏览器指纹并生成令牌Cookie。文章详细拆解了其两步验证流程,并提供了使用无头浏览器、逆向JS模拟请求以及Token维护等实战绕过方法,帮助开发者和安全研究人员应对自动化访问拦截。

weixin_29256771的博客 442

Java.lang.Class asSubclass()方法有什么功能呢?

Java.lang.Class asSubclass()方法的功能简介说明

qq_25073223的博客 319

基于 SoC 的卷积神经网络车牌识别系统设计(1)引言

通过 CPU 软核 IP 在纯 FPGA 平台上构建一个 AI SoC 卷积神经网络车牌识别系统,其中,缩放、填充层、卷积层、ReLU、池化层、全连接层 IP 都是 Verilog 设计的,同时集成了各种高性能的 IP。这是最具挑战性的 AI SoC 芯片设计项目,集成了 Python 卷积神经网络代码、Verilog 卷积神经网络硬件设计、ARM SoC 设计、ARM 与 FPGA 的交叉编译流程等等。这不仅是科研学习、集创竞赛、秋招求职的一个极具优势的精彩项目,也是目前最火热的芯片行业之中的一个...

新芯设计的博客 3778

手把手教你学PCIE(1.38)--基本概念:ATU(地址转换单元)

ATU(Address Translation Unit)是一种硬件单元,用于在PCIe系统中进行地址转换。它将设备的本地地址(外部地址)转换为系统内存或配置空间中的全局地址(内部地址),反之亦然。ATU的工作原理:通过地址匹配和转换,确保事务能够在不同的地址空间之间正确路由。配置寄存器:通过配置寄存器来设置地址转换规则。应用场景:地址空间隔离、访问控制、动态地址管理、虚拟化和多租户。

MHD0815的博客 2053

Class类的asSubClass()方法

假设你持有一个java.sql.Date()的对象

QWZDY 4386

【GPFS专题5】---IBM Spectrum Scale (GPFS) 日常运维命令大全

掌握这些命令是有效管理 GPFS 集群的基础。实际生产环境中,建议结合自动化脚本和监控系统(如 IBM Storage Insights)实现高效运维。定期备份配置、监控性能指标,并进行灾备演练,是保障数据安全和系统稳定的关键。

jundao1997的专栏 838

java assubclass_Class.asSubclass浅谈

Java代码public Class extends U> asSubclass(Class clazz)这是java.lang.Class中的一个方法,作用是将调用这个方法的class对象转换成由clazz参数所表示的class对象的某个子类。举例来说,Java代码List strList = new ArrayList();Class extends List> strList_...

weixin_35853499的博客 373

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

java assubclass_Class.asSubclass浅谈 | 学步园

publicClassextendsU>asSubclass(Classclazz)这是java.lang.Class中的一个方法,作用是将调用这个方法的class对象转换成由clazz参数所表示的class对象的某个子类。举例来说,ListstrList=newArrayList();ClassextendsList>strList_cast=strLi...

weixin_39821874的博客 246

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

java assubclass_Java Class类 asSubclass()方法及示例

Class类asSubclass()方法asSubclass()方法在java.lang包中可用。asSubclass()方法强制转换此Class对象,以表示由给定Class对象表示的类的子类。asSubclass()方法是一个非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。asSubclass()方法可能会在强制转换Class时引发ClassCastExcepti...

weixin_39630771的博客 728

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

java assubclass_Java Class asSubclass()方法

Java Class asSubclass()方法java.lang.Class.asSubclass()方法施放此Class对象,以表示指定的Class对象所表示的类的子类。当一个客户端需要“窄”一类的对象的类型将它传递给了限制类的对象,它愿意接受一个API,它是有用的。1 语法public Class extends U> asSubclass(Class clazz)2 参数无3 ...

weixin_31292909的博客 476

java assubclass_java – Class.asSubclass签名

如果返回类型为Class延伸U>。让我们先来了解一下,getClass签名:AbstractList ls = new ArrayList<>();Class extends AbstractList> x = ls.getClass();现在编译器允许我们做:Class x = ls.getClass();这会是错误的。因为在运行时,ls.getClass将是ArrayL...

weixin_29360387的博客 232

java.lang.Class.asSubclass()方法实例

java.lang.Class.asSubclass() 方法施放此Class对象,以表示指定的Class对象所表示的类的子类。当一个客户端需要“窄”一类的对象的类型将它传递给了限制类的对象,它愿意接受一个API,它是有用的。声明以下是java.lang.Class.asSubclass()方法的声明public U> Class extends U> asSubclass(ClassU> cla

Decisiveness的专栏 1136

【java.lang.Class】asSubclass(Class<U> clazz)

干饭人干饭时间,第一个冲向饭店!

おうせき碩の博客 436

Java API>java.lang.Class阅读的心得——Class.asSubclass分析

这个函数的作用是将调用该方法的Class对象转换成clazz对象对应类的某个子类,注意是某个子类,clazz对应类的子类也包括该类本身. 转换成功返回对clazz子类的引用 该方法的使用场合一般是在对对象的类别不清楚而我们本身对对象的类型有有所限制的时候。例如Class.forName("xxxx")返回的类是未知的而我们又希望获得需要的类对象,这时候就可以使用asSubclass方法了 代

游离于二次元世界男人的博客 763

java反射中asSubclass方法

Class asSubClass(Class)这个方法是什么意思呢? 从名字上看貌似是将调用的Class转成括号内的Class的子类,但是正好是反的。。。。 这个方法的作用是:父类作为参数,将父类转化为子类。 Class clazz=List.class; Class subclazz=ArrayList.class.asSubclass(clazz); System.out.pri

小飞鱼的blablabla... 5658

asSubclass

这个函数的作用是将调用该方法的Class对象转换成clazz对象对应类的某个子类,注意是某个子类,clazz对应类的子类也包括该类本身. 转换成功返回对clazz子类的引用 该方法的使用场合一般是在对对象的类别不清楚而我们本身对对象的类型有有所限制的时候。例如Class.forName("xxxx")返回的类是未知的而我们又希望获得需要的类对象,这时候就可以使用asSubclass方法

xw丶 349
上一篇: hadoop文件结构分析
下一篇: JDK中的AOP、动态代理
heipacker
博客等级 码龄17年 9粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值