首页 > 其他分享 >Class对象

Class对象

时间:2024-01-10 10:56:21浏览次数:27  
标签:对象 接口 public Field 父类 Class

1、需要特别注意的是,手动编写的每个class类,无论创建多少个实例对象,在JVM中都只有一个Class对象,即在内存中每个类有且只有一个相对应的Class对象 。

2、Java中每个类都有一个Class对象,当编译一个新创建的类就会产生一个对应Class对象并且这个Class对象会被保存在同名.class文件里(编译后的字节码文件保存的就是Class对象)

3、 Class类只存私有构造函数,因此对应Class对象只能有JVM创建和加载

 

获取运行时类的完整结构 可以获取:包、修饰符、类型名、父类(包括泛型父类)、父接口(包括泛型父接口)、成员(属性、构造器、方法)、注解(类上的、方法上的、属性上的)。 相关 API
//1.实现的全部接口
public Class<?>[] getInterfaces() 
//确定此对象所表示的类或接口实现的接口。
//2.所继承的父类
public Class<? Super T> getSuperclass()
//返回表示此 Class 所表示的实体(类、接口、基本类型)的父类的 Class。
//3.全部的构造器
public Constructor<T>[] getConstructors()
//返回此 Class 对象所表示的类的所有 public 构造方法。
public Constructor<T>[] getDeclaredConstructors()
//返回此 Class 对象表示的类声明的所有构造方法。
//Constructor 类中:
//取得修饰符: 
public int getModifiers();
//取得方法名称: 
public String getName();
//取得参数的类型:
public Class<?>[] getParameterTypes();
//4.全部的方法
public Method[] getDeclaredMethods()
//返回此 Class 对象所表示的类或接口的全部方法
public Method[] getMethods() 
//返回此 Class 对象所表示的类或接口的 public 的方法
//Method 类中:
public Class<?> getReturnType()
//取得全部的返回值
public Class<?>[] getParameterTypes()
//取得全部的参数
public int getModifiers()
//取得修饰符
public Class<?>[] getExceptionTypes()
//取得异常信息
//5.全部的 Field
public Field[] getFields()
//返回此 Class 对象所表示的类或接口的 public 的 Field。
public Field[] getDeclaredFields()
//返回此 Class 对象所表示的类或接口的全部 Field。
//Field 方法中:
public int getModifiers()
//以整数形式返回此 Field 的修饰符
public Class<?> getType() 
//得到 Field 的属性类型
public String getName() 
//返回 Field 的名称
//6. Annotation 相关
get Annotation(Class<T> annotationClass)
getDeclaredAnnotations()
//7.泛型相关
//获取父类泛型类型:
Type getGenericSuperclass()
//泛型类型:ParameterizedType
//获取实际的泛型类型参数数组:
getActualTypeArguments()
//8.类所在的包
Package getPackage()

 

//1.实现的全部接口 public Class<?>[] getInterfaces() //确定此对象所表示的类或接口实现的接口。 //2.所继承的父类 public Class<? Super T> getSuperclass() //返回表示此 Class 所表示的实体(类、接口、基本类型)的父类的 Class。

标签:对象,接口,public,Field,父类,Class
From: https://www.cnblogs.com/callbin/p/17956042

相关文章

  • 演示JVM中对象分配内存过程和OOM发生原因
    工具:jvisualvm测试代码:publicstaticvoidmain(String[]args)throwsException{List<byte[]>list=Lists.newArrayList();System.in.read();while(true){System.out.println("-----"+DateUtil.now());......
  • Unity3D 原始对象和占位对象详解
    Unity3D是一款强大的跨平台游戏引擎,提供了丰富的功能和工具,方便开发者创建各种类型的游戏。在Unity3D中,原始对象和占位对象是两个重要的概念。本文将详细介绍原始对象和占位对象的概念、技术详解以及代码实现。对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小......
  • js 静态分配与对象池
    为了提升JavaScript性能,最后要考虑的一点往往就是压榨浏览器了。此时,一个关键问题就是如13何减少浏览器执行垃圾回收的次数。开发者无法直接控制什么时候开始收集垃圾,但可以间接控制触发垃圾回收的条件。理论上,如果能够合理使用分配的内存,同时避免多余的垃圾回收,那就可以保住因......
  • Oracle-使用dbms_metadata.get_ddl()获取对象的定义
    dbms_metadata.get_ddl()用于获取对象的ddl,其具体用法如下。注意:在sqlplus里,为了更好的展示DDL,需要设置如下参数:setline200setpagesize0setlong99999setfeedbackoffsetechooff1)获得表、索引、视图、存储过程、函数的DDLselectdbms_metadata.get_ddl('TABLE','TABLE_......
  • allegro 中如何对任意对象进行镜像mirror操作 Allegro PCB17.2+
    相信使用cadence套件的工程师都知道这块EDA工具的效率和功能时十分强大的。但入门这款工具,相对来讲需要花费的时间和精力时比较多的。allegro提供的众多强大的功能,但这也是这个工具入门不那么容易的一个原因。今天记录一个在布局过程中很实用的一个小功能:AdvancedMirror高级镜......
  • VUE框架的事件绑定与事件回调函数的this对象------VUE框架
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document</title>......
  • 快乐学Python,Python基础之组织代码「类与对象」
    在上一篇文章中,我们了解了函数。这一篇文章我们来了解一下Python中另外一个重要的概念:类与对象。1、类与对象(1)类与对象有什么关系?你可能会奇怪,为什么要叫类与对象呢?是两个不同的东西吗?简单来说,类代表一个类别,而对象则代表类的一个实例。比如我们在变量与数据类型中学习的整型变......
  • uniCloud 云对象
    新建云对象hello为自定义的云对象名称编辑云对象uniCloud-aliyun/cloudfunctions/hello/index.obj.jsmodule.exports={ say(name){ return`你好,${name}` }}使用云对象pages/index/index.vue<button@click="test_cloudObj">调用云对象</button>methods:{ asynctest_cl......
  • 【C++】STL 算法 ② ( foreach 循环中传入 函数对象 / Lambda 表达式处理元素 | forea
    文章目录一、foreach循环中传入函数对象/Lambda表达式处理元素1、foreach循环算法2、foreach循环中传入函数对象处理元素3、foreach循环中传入Lambda表达式处理元素4、Lambda表达式-匿名函数对象/仿函数一、foreach循环中传入函数对象/Lambda表达式处理......
  • 浅谈Python内置对象类型——数字篇
    在Python中,数字是一种内置的对象类型,用于表示数值。Python提供了多种内置的数字类型,包括整数、浮点数、复数等。这些数字类型具有不同的属性和方法,以满足各种数值计算的需求。一、整数整数是正或负整数,不带小数点。在Python中,可以使用十进制、二进制、八进制和十六进制表示整数。例......