0

0

Java中Class类的作用详解

黄舟

黄舟

发布时间:2017-10-17 09:31:36

|

3045人浏览过

|

来源于php中文网

原创

这篇文章主要介绍了java中class类的作用与深入理解的相关资料,希望通过本文能帮助到大家让大家理解这部分内容,需要的朋友可以参考下

Java中Class类的作用与深入理解

  在程序运行期间,Java运行时系统始终为所有的对象维护一个被称为运行时的类型标识。这个信息跟踪着每个对象所属的类。JVM利用运行时信息选择相应的方法执行。而保存这些信息的类称为Class。可能容易产生混淆,容易想到class。不过二者没什么关系,class不过是描述类的一个关键字。而Class却是保存着运行时信息的类。

       它能做什么?Class类可以帮助我们在程序运行时分析类,说白了就是获取类中的值。可能瞬间就想到了反射,没错!Class一般就是和反射配套使用的,因为我们向Class提供一个类或一个类的类名,Class就可以提供我们很多信息,比如属性/方法/修饰符/构造器/类名等等。然后我们就可以进一步进行反射。不过,还是先来简单了解下Class类的内容和使用方式吧!

        我们通常用以下方法来获取Class对象:

立即学习Java免费学习笔记(深入)”;


 String str = new String();
 Class cl = str.getClass();

        因为这个类包含太多信息,所以我们可以通过它来获得具体一个类的域/方法和构造器。下面列举一些常用的方法:

亿众购物系统
亿众购物系统

一套设计完善、高效的web商城解决方案,独有SQL注入防范、对非法操作者锁定IP及记录功能,完整详细的记录了非法操作情况,管理员可以随时查看网站安全日志以及解除系统自动锁定的IP等前台简介:  1)系统为会员制购物,无限会员级别。  2)会员自动升级、相应级别所享有的折扣不同。  3)产品可在缺货时自动隐藏。  4)自动统计所有分类中商品数量,并在商品分类后面显示。  5)邮件列表功能,可在线订阅

下载


 public static void main(String[] args) throws Exception {
 // 以String.class为例
 String str = new String();
 Class cl = str.getClass();
 /**
  * 获取包名+类名
* java.lang.String */ cl.getName(); /** * 只获取类名 - String */ cl.getSimpleName(); /** * 获取数组的Class对象
* 因为所有的Java类都继承自Object,数组也一样.所以数组本身也是个Class, 得到数组的Class自然也可以转回数组. */ cl.getComponentType(); /** * 返回构造器数组,包括超类的公有成员. */ cl.getConstructors(); /** * 返回方法数组,包括超类的公有成员. */ cl.getMethods(); /** * 返回域数组,包括超类的公有成员. */ cl.getFields(); /** * 返回全部构造器数组,无论是public/private还是protected,不包括超类的成员. */ cl.getDeclaredConstructors(); /** * 返回全部域数组,无论是public/private还是protected,不包括超类的成员. */ cl.getDeclaredFields(); /** * 返回全部方法数组,无论是public/private还是protected,不包括超类的成员. */ cl.getDeclaredMethods(); /** * 获取类前的修饰符 */ cl.getModifiers(); }

        我们可以通过一个类来获取Class对象,进而获取此类的信息。也可以通过全类名来获取Class对象。


Class cl = Class.forName("java.lang.String");

        有了这个类的Class对象,我们就可以创建这个类的对象。最方便/快速的方法是调用newInstance()。默认情况下,它默认调用无参构造来返回一个对象。


String str = (String)(Class.forName("java.lang.String").newInstance());

        以下是用Constructor通过获取构造器来创建对象:


// 调用无参的私有构造函数
 Constructor c1 = Class.forName("java.lang.String")
  .getDeclaredConstructor();
 c1.setAccessible(true);
 String str1 = (String) c1.newInstance();
 // 调用有参的私有构造函数
 Constructor c2 = Class.forName("java.lang.String")
  .getDeclaredConstructor(new Class[] { String.class });
 c2.setAccessible(true);
 String str2 = (String) c2.newInstance("hello");

        Class不是太难,因为它就是个信息类。在运行时跟踪类,掌握类的全部信息。

相关文章

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

14

2026.01.30

c++ 字符串格式化
c++ 字符串格式化

本专题整合了c++字符串格式化用法、输出技巧、实践等等内容,阅读专题下面的文章了解更多详细内容。

9

2026.01.30

java 字符串格式化
java 字符串格式化

本专题整合了java如何进行字符串格式化相关教程、使用解析、方法详解等等内容。阅读专题下面的文章了解更多详细教程。

12

2026.01.30

python 字符串格式化
python 字符串格式化

本专题整合了python字符串格式化教程、实践、方法、进阶等等相关内容,阅读专题下面的文章了解更多详细操作。

4

2026.01.30

java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

20

2026.01.29

java配置环境变量教程合集
java配置环境变量教程合集

本专题整合了java配置环境变量设置、步骤、安装jdk、避免冲突等等相关内容,阅读专题下面的文章了解更多详细操作。

18

2026.01.29

java成品学习网站推荐大全
java成品学习网站推荐大全

本专题整合了java成品网站、在线成品网站源码、源码入口等等相关内容,阅读专题下面的文章了解更多详细推荐内容。

19

2026.01.29

Java字符串处理使用教程合集
Java字符串处理使用教程合集

本专题整合了Java字符串截取、处理、使用、实战等等教程内容,阅读专题下面的文章了解详细操作教程。

3

2026.01.29

Java空对象相关教程合集
Java空对象相关教程合集

本专题整合了Java空对象相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
前端系列快速入门课程
前端系列快速入门课程

共4课时 | 0.4万人学习

react hooks实战移动端企业级项目
react hooks实战移动端企业级项目

共59课时 | 6.4万人学习

Kotlin 教程
Kotlin 教程

共23课时 | 3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号