【java学习—十四】Class类(2)

news2024/11/27 16:50:02

文章目录

  • 1. Class类
  • 2. Class类的常用方法
  • 3. 实例化Class类对象(四种方法)


1. Class类

在 Object 类中定义了以下的方法,此方法将被所有子类继承:
public final Class getClass()
以上的方法返回值的类型是一个 Class 类,此类是 Java 反射的源头, 实际上所谓反射从程序的运行结果来看也很好理解,即:
可以通过对象反射求出类的名称

在这里插入图片描述

反射可以得到的信息:某个类的属性、方法和构造器、某个类到底实现了哪些接口。对于每个类而言, JRE 都为其保留一个不变的 Class 类型的对象。

  • 一个 Class 对象包含了特定某个类的有关信息。
  • Class 本身也是一个类
  • Class 对象只能由系统建立对象
  • 一个类在 JVM 中只会有一个 Class 实例
  • 一个 Class 对象对应的是一个加载到 JVM 中的一个 .class 文件
  • 每个类的实例都会记得自己是由哪个 Class 实例所生成
  • 通过 Class 可以完整地得到一个类中的完整结构

2. Class类的常用方法

在这里插入图片描述

3. 实例化Class类对象(四种方法)

  1. 前提:若已知具体的类,通过类的 class 属性获取。该方法最为安全可靠,程序性能最高
    实例: Class clazz = String.class;

  2. 前提:已知某个类的实例,调用该实例的 getClass() 方法获取 Class 对象
    实例: Class clazz = “www.xyd.com”.getClass();

  3. 前提:已知一个类的全类名,且该类在类路径下,可通过Class 类的静态方法 forName() 获取,可能抛出 ClassNotFoundException
    实例: Class clazz = Class.forName(“java.lang.String”);

  4. 其他方式 ( 不做要求 )
    ClassLoader cl = this.getClass().getClassLoader();
    Class clazz4 = cl.loadClass(“ 类的全类名” );

举例:

package day14;

public class Test {
	public static void main(String[] args) {
		Person p = new Person();
	
		//方法1
		Class c0 = Person.class;//通过类名.class创建指定类的Class实例
		//方法2
		Class c1 = p.getClass();//通过一个类的实例对象的getClass()方法,获取对应实例对象的类的Class实例
		//方法3
		try {
			//通过Class的静态方法forName(String className)来获取一个类的Class实例
			//forName(String className)方法中的参数是你要获取的Class实例的类的全路径(包名.类名)
			Class c2 = Class.forName("day14.Person");//获取Class实例的常用方法
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		
	}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1207633.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue2中使用Markdown编辑器

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

Linux必备基础命令,JAVA程序员必备

目录 一、了解基本的左侧栏什么意思​编辑 二、ls,ll(list,查找目录内容) 三、cd(change directory,切换目录) 小技巧,我们在查找东西的时候,可以使用tab进行智能补全。 四、touch(建立文件…

【运维】-- 在线网络工具

1、https://ping.pe/ 一个免费的在线网络工具,可以帮助您检测和分析IP地址的连接情况。 这是搬瓦工官方做的一个 ping 在线测试网站工具。比较适合测试短时间的 ping 统计,并且在网页上以图表形式统计显示出来。 PS: a、丢包会以红色显示出…

安卓:打包apk时出现Execution failed for task ‘:app:lintVitalRelease

Execution failed for task :lintVitalRelease 程序可以正常运行,但是打包apk的时候报Execution failed for task ‘:app:lintVitalRelease导致打包失败,原因是执行lintVitalRelease失败了,存在错误。解决办法:在app模块的build.…

R程序 示例4.3.2版本包 在centos进行编译部署

为了在CentOS上下载和编译R语言4.3.2包,可以按照以下步骤进行操作: 1.首先,需要安装一些必要的依赖项。可以使用以下命令安装它们: sudo yum install -y epel-release sudo yum install -y gcc gcc-c gcc-gfortran readline-dev…

任意注册漏洞

目录 一漏洞介绍 二实战演示 三漏洞修复 本文由掌控安全学院 - 小博 投稿 一漏洞介绍 1.未验证邮箱/手机号 情景:应用为了方便用户记录用户名,使用邮箱和手机号作为用户名(因此很多应用在注册的时候就要求用户填写,多数时候…

gpt-4-vision-preview 识图

这些图片都是流行动画角色的插图。 第一张图片中的角色是一块穿着棕色方形裤子、红领带和白色衬衫的海绵,它站立着并露出开心的笑容。该角色在一个蓝色的背景前,显得非常兴奋和活泼。 第二张图片展示的是一只灰色的小老鼠,表情开心&#xf…

Android Studio的代码笔记--JSON解析学习2

JSON学习2 生成JSON解析JSON java解析json字符串和合成json字符串 json字符串 {"type":"getConfig","ip":"192.168.1.100"}使用 String ss groupJS("Config","192.168.1.100"); splitJS(ss);回显 I/lxh: group…

个人类型小程序已支持申请微信认证

小程序申请微信认证 政府、媒体、其他组织类型账号,必须通过微信认证验证主体身份。企业类型账号,可以根据需要确定是否申请微信认证。已认证账号可使用微信支付权限。 个人类型小程序已支持微信认证(审核大约需要1-3个工作日) …

黑客技术应该这么学!30天入门黑客

前言 前几天发布了一篇 网络安全(黑客)自学 没想到收到了许多人的私信想要学习网安黑客技术!却不知道从哪里开始学起!怎么学 今天给大家分享一下,很多人上来就说想学习黑客,但是连方向都没搞清楚就开始学习…

神通MPP数据库的跨库查询

神通MPP数据库的跨库查询 一. 简介二. 系统表三. 跨库查询语法1. 创建外部数据存储服务器2. 删除外部数据存储服务器3. 授予普通用户访问外部数据存储服务器权限4. 回收普通用户访问外部数据存储服务器权限5. 加密函数6. 访问外部数据存储服务器 ★ 四. 跨库查询:统…

MySQL中修改注释+报错1067错误时的解决方法

修改某字段的注释内容的mysql语句 ALTER TABLE consumption_table MODIFY COLUMN risk_level tinyint(1) NOT NULL DEFAULT 0 COMMENT 0-低 1-中 2-高;修改某字段的注释内容的mysql语句时报错1067的解决方法 首先执行MySQL语句:SET sql_mode ‘ALLOW_INVALID_DAT…

毫米波雷达的自适应波束成形技术:提升感知精度的前沿探索

毫米波雷达的自适应波束成形技术是当前雷达领域备受关注的研究方向之一。本文深入探讨了自适应波束成形技术的原理、关键技术和在各个应用领域中的前景,以及它如何提升毫米波雷达系统在复杂环境中的感知精度。 随着科技的不断进步,毫米波雷达系统在无线通…

嵌入式行业算青春饭吗?

今日话题,嵌入式行业算青春饭吗?嵌入式行业的技术要求确实非常广泛,需要深厚的知识广度和深度。这意味着入行门槛较高,我们需要了解不仅是软件和硬件,还要熟悉底层接口和硬件信号的处理方式,了解数据在计算…

什么是 IT 资产管理(ITAM),以及它如何简化业务

IT 资产管理对任何企业来说都是一项艰巨的任务,但使用适当的工具可以简化这项任务,例如,IT 资产管理软件可以为简化软件和硬件的管理提供巨大的优势。 什么是 IT 资产管理 IT 资产管理(ITAM)是一组业务实践&#xff…

【Python基础篇】字面量

博主:👍不许代码码上红 欢迎:🐋点赞、收藏、关注、评论。 格言: 大鹏一日同风起,扶摇直上九万里。 文章目录 一 Python中字面量的定义二 常见的字面量类型1 数字(Number)2 字符串(String)3 列表(List)4 元…

通过key在数仓里查询dt的时候报错

现象 Query failed (#20231114_080638_00103_iaf4c) in hive: line 3:11: Column tyc_web_company_workright cannot be resolved 原因 key应该被单引号括起来,字段名称才应该被双引号括起来 修改 把单引号换成双引号就好了

春秋云境靶场CVE-2022-32991漏洞复现(sql手工注入)

文章目录 前言一、CVE-2022-32991靶场简述二、找注入点三、CVE-2022-32991漏洞复现1、判断注入点2、爆显位个数3、爆显位位置4 、爆数据库名5、爆数据库表名7、爆数据库数据 总结 前言 此文章只用于学习和反思巩固sql注入知识,禁止用于做非法攻击。注意靶场是可以练…