java程序中出现两个class,Java中Class类中两个值得注意的进行类型动态转换的方法...
Java中的Class类有两个重要的方法:cast()和asSubclass()。这两个方法都是用于Class类进行运行时(run-time)阶段的类型转换的。下面来看看他们的定义和使用:
第一个方法asSubclass()
public Class extends U> asSubclass(Class clazz)
Casts thisClassobject to represent a subclass of the class represented by the specified class object. Checks that that the cast is valid, and throws aClassCastExceptionif it is not. If this method succeeds, it always returns a reference to this class object.
This method is useful when a client needs to "narrow" the type of aClassobject to pass it to an API that restricts theClassobjects that it is willing to accept. A cast would generate a compile-time warning, as the correctness of the cast could not be checked at runtime (because generic types are implemented by erasure).
Returns:
thisClassobject, cast to represent a subclass of the specified class object.
Throws:
ClassCastException- if thisClassobject does not represent a subclass of the specified class (here "subclass" includes the class itself).
Since:
1.5
使用实例:
Class> c = Class.forName(“MyClass”);
Class child = c.asSubClass(Father.class); // “Child” extends “Father”
第二个方法cast()
publicTcast(Objectobj)
Casts an object to the class or interface represented by thisClassobject.
Parameters:
obj- the object to be cast
Returns:
the object after casting, or null if obj is null
Throws:
ClassCastException- if the object is not null and is not assignable to the type T.
Since:
1.5
使用实例:
这个函数可以简单的理解为将一个Object类型的对象转换成Class表示的类型的对象(其实在java中Class类就是所有类型字节码的一种抽象,或者简单理解为在java中就是用于来说明类型的类型,因为java中一切都是类,所以“类”(类型)也是是类,而这个类就是Class)。
Class c = String.class;
Object o = “hello world!”;
String s = c.cast(o); // 将Object类型转成这里的Class表示的类型,即String类型
Java中的Class类可以表示java中的所有类型,主要通过Class中的T来指定具体表示的是哪种类型。
java程序中出现两个class,Java中Class类中两个值得注意的进行类型动态转换的方法...相关推荐
- 编写高质量代码改善java程序的151个建议——[110-117]异常及Web项目中异常处理
编写高质量代码改善java程序的151个建议--[110-117]异常及Web项目中异常处理 原创地址:http://www.cnblogs.com/Alandre/(泥沙砖瓦浆木匠),需要转载的,保 ...
- java编译程序的基本命令是什么,【填空题】Java中编译java 程序的命令是 1 ,执行java程序的命令是 java 。...
[填空题]Java中编译java 程序的命令是 1 ,执行java程序的命令是 java . 更多相关问题 [多选] 下列骨折中属于关节外骨折的是(). [多选] 骨折早期局部的并发症包括(). [多 ...
- 解释java程序所使用的命令是,Java程序的执行原理以及解释说明
在初学Java的时候,我们安装完Java的开发环境后,就可以通过记事本等编辑工具编写程序了.推荐在Windows操作系统中使用EditPlus工具进行编写.由于我使用的是Mac OS,所以,我使用Su ...
- 【Java开发语言 01】第一章 Java语言概述(基础常识+Java语言概述+Java程序运行机制及运行过程+Java语言环境的搭建+开发体验hello world+错误:编码GBK的不可映射字符)
java入门-第一章Java语言概述 1基础常识 软件开发 人机交互方式 常用的DOS命令(win系统,有一些直接通过命令执行的) 2 Java语言概述 什么是计算机语言 关于面向对象和面向过程 Ja ...
- java程序员烂大街了吗?java入坑之前先来看看行情
java程序员烂大街了吗?下面就跟着小编一起来看看吧! 任何东西的存在.火与不火都是一个供求关系决定的.有需求.有市场.有利益.再加上有合适工具.才会有人去做. 而java却恰恰符合这一点.为什么这么 ...
- Java程序员的认证Sun Certified JAVA Programmer(SCJP)
Java程序员的认证Sun Certified JAVA Programmer(SCJP) 课程:SL-275 JAVA语言编程 本课程使学员掌握如何使用标准JAVA Development Kit, ...
- 学习Java第一天:1、Java是什么?2、面向对象的编程思想的特点 3、Java的开发工具 4、安装JDK和配置环境变量 5、Java程序的运行过程 6、Java语言的特点
目录 1.Java是什么? 2.面向对象的编程思想的特点 3.Java的开发工具 4.安装JDK和配置环境变量 5.Java程序的运行过程 6.Java语言的特点 1.Java是什么? java是一门 ...
- 新手Java程序员找工作更看重Java项目经验?
动力节点IT培训,全真项目实操实训,贯穿八大行业,彻底帮助学员摆脱纸上谈兵的尴尬,一技成,天下行. 新手Java程序员找工作更看重Java项目经验?这个问题,想必是很多学Java的朋友也特别好奇的地方 ...
- java类图设计题_试题七阅读下列说明、图以及Java程序。[说明]某订单管理系统的部分UML类图如 - 信管网...
试题七 阅读下列说明.图以及Java程序. [说明] 某订单管理系统的部分UML类图如下图所示. 上图中,Product表示产品,ProductList表示所销售产品的列表,Order表示产品订单,O ...
最新文章
- 文本纠错与BERT的最新结合,Soft-Masked BERT
- c语言是一门对标识符大小写敏感的程序设计语言,《C语言程序设计》课程自测题...
- Python实现PS滤镜Fish lens图像扭曲效果示例
- php获取数组中,相同键名的键值之和
- ISCC2021 美人计
- Win的phpstudy安装VC报错
- CentOS7防火墙firewalld和iptable的设置和使用
- 前端模块规范AMD/UMD/CommonJs
- 话里话外:企业内控的灵魂——企业文化
- 麻省理工学院计算机专业2018,麻省理工学院专业排名一览及最强专业推荐(QS世界大学排名)...
- 计算机java培训总结,java培训总结范文
- redis主从复制_技术干货分享:一文了解Redis主从复制
- OpenZeppelin集成Truffle编写健壮安全的合约
- python爬虫安装了pycharm还要安装什么_Pycharm安装与使用
- 相位一致性的基本原理及应用问题
- LimeSDR环境的安装
- emi滤波matlab,【原创】EMI 滤波器设计从入门到精通(三)
- Spring 最新漏洞修复
- 朱松纯领衔、北大清华超强联合,开启「通用人工智能实验班」
- java 解析 svg文件_java – 如何加载和解析SVG文档