Java的基本思想之一是万事万物即对象,类也是一种对象。但是类是什么对象呢?Java中的类是java.lang.Class的实例化对象,这被成为类类型。

//java.lang.Class类中的的主要方法如下

下面是Java1.8 API中java.lang.Class类中的方法:

va.lang中Class Class

java.lang.Object继承的java.lang.Class

类型参数:

T - 由此Class对象建模的类的类型。 例如,String.class的类型是Class 。 如果正在建模的类未知,请使用Class 。

所有已实现的接口:

Serializable,AnnotatedElement,GenericDeclaration,Type

类定义

public final class Class extends Object implements Serializable, GenericDeclaration, Type, AnnotatedElement

类Class的实例表示正在运行的Java应用程序中的类和接口。 枚举是一种类,注释是一种接口。 每个数组也属于一个类,它反映为一个Class对象,由具有相同元素类型和维数的所有数组共享。 原始Java类型(boolean,byte,char,short,int,long,float和double)以及关键字void也表示为Class对象。

类没有公共构造函数。 相反,类对象由Java虚拟机在加载类时自动构造,并通过调用类加载器中的defineClass方法。

以下示例使用Class对象来打印对象的类名:

void printClassName(Object obj) {

System.out.println("The class of " + obj +

" is " + obj.getClass().getName());

}

也可以使用类文字获取命名类型(或void)的Class对象。 请参阅Java™语言规范的第15.8.2节。 例如:

System.out.println("The name of class Foo is: "+Foo.class.getName());

方法摘要:

修饰符和类型 方法和描述

Class extends U>asSubclass(Class clazz)

转换此Class对象以表示由指定的类对象表示的类的子类。

T cast(Object obj)

将对象强制转换为此Class对象所表示的类或接口。

booleandesiredAssertionStatus()

如果要在调用此方法时初始化,则返回将分配给此类的断言状态。

static Class>forName(String className)

返回与具有给定字符串名称的类或接口关联的Class对象。

static Class forName(String name,boolean initialize,ClassLoader loader)

使用给定的类加载器返回与具有给定字符串名称的类或接口关联的Class对象。

AnnotatedType[] getAnnotatedInterfaces()

返回AnnotatedType对象的数组,这些对象表示使用类型来指定此Class对象所表示的实体的超接口。

AnnotatedType getAnnotatedSuperclass()

返回AnnotatedType对象,该对象表示使用类型来指定此Class对象所表示的实体的超类。

A getAnnotation(Class annotationClass)

如果存在这样的注释,则返回指定类型的此元素的注释,否则返回null。

Annotation[] getAnnotations()

返回此元素上存在的注释。

A[] getAnnotationsByType(Class annotationClass)

返回与此元素关联的注释。

String getCanonicalName()

返回Java语言规范定义的基础类的规范名称。

Class>[] getClasses()

返回一个数组,其中包含Class对象,这些对象表示作为此Class对象所表示的类的成员的所有公共类和接口。

ClassLoader getClassLoader()

返回类的类加载器。

Class> getComponentType()

返回表示数组的组件类型的Class。

Constructor getConstructor(Class>... parameterTypes)

返回一个Constructor对象,该对象反映此Class对象所表示的类的指定公共构造函数。

Constructor>[] getConstructors()

返回一个包含Constructor对象的数组,这些对象反映此Class对象所表示的类的所有公共构造函数。

A getDeclaredAnnotation(Class annotationClass)

如果直接存在这样的注释,则返回指定类型的此元素的注释,否则返回null。

Annotation[] getDeclaredAnnotations()

返回直接出现在此元素上的注释。

A[] getDeclaredAnnotationsByType(Class annotationClass)

如果此类注释直接存在或间接存在,则返回指定类型的此元素的注释。

Class>[] getDeclaredClasses()

返回Class对象的数组,这些对象反映声明为此Class对象所表示的类的成员的所有类和接口。

Constructor getDeclaredConstructor(Class>... parameterTypes)

返回一个Constructor对象,该对象反映此Class对象所表示的类或接口的指定构造函数。

Constructor>[] getDeclaredConstructors()

返回Constructor对象的数组,这些对象反映由此Class对象表示的类声明的所有构造函数。

Field getDeclaredField(String name)

返回一个Field对象,该对象反映此Class对象所表示的类或接口的指定声明字段。

Field[] getDeclaredFields()

返回Field对象的数组,这些对象反映由此Class对象表示的类或接口声明的所有字段。

Method getDeclaredMethod(String name, Class>... parameterTypes)

返回一个Method对象,该对象反映此Class对象所表示的类或接口的指定声明方法。

Method[] getDeclaredMethods()

返回一个数组,其中包含反映此Class对象所表示的类或接口的所有声明方法的Method对象,包括public,protected,default(包)访问和私有方法,但不包括继承的方法。

Class> getDeclaringClass()

如果此Class对象表示的类或接口是另一个类的成员,则返回表示声明它的类的Class对象。

Class> getEnclosingClass()

返回基础类的直接封闭类。

Constructor> getEnclosingConstructor()

如果此Class对象表示构造函数中的本地或匿名类,则返回一个Constructor对象,该对象表示基础类的直接封闭构造函数。

Method getEnclosingMethod()

如果此Class对象表示方法中的本地或匿名类,则返回表示基础类的直接封闭方法的Method对象。

T[] getEnumConstants()

返回此枚举类的元素,如果此Class对象不表示枚举类型,则返回null。

Field getField(String name)

返回一个Field对象,该对象反映此Class对象所表示的类或接口的指定公共成员字段。

Field[] getFields()

返回一个包含Field对象的数组,这些对象反映此Class对象所表示的类或接口的所有可访问公共字段。

Type[] getGenericInterfaces()

返回表示由此对象表示的类或接口直接实现的接口的Types。

Type getGenericSuperclass()

返回表示此Class表示的实体(类,接口,基本类型或void)的直接超类的Type。

Class>[] getInterfaces()

确定由此对象表示的类或接口实现的接口。

Method getMethod(String name, Class>... parameterTypes)

返回一个Method对象,该对象反映此Class对象所表示的类或接口的指定公共成员方法。

Method[] getMethods()

返回一个包含Method对象的数组,这些对象反映此Class对象所表示的类或接口的所有公共方法,包括由类或接口声明的那些以及从超类和超接口继承的那些。

int getModifiers()

返回此类或接口的Java语言修饰符,以整数编码。

String getName()

以String形式返回此Class对象表示的实体名称(类,接口,数组类,基本类型或void)。

Package getPackage()

获取此类的包。

ProtectionDomain getProtectionDomain()

返回此类的ProtectionDomain。

URL getResource(String name)

查找具有给定名称的资源。

InputStream getResourceAsStream(String name)

查找具有给定名称的资源。

Object[] getSigners()

获取此类的签名者。

String getSimpleName()

返回源代码中给出的基础类的简单名称。

Class super T> getSuperclass()

返回表示此Class表示的实体(类,接口,基本类型或void)的超类的Class。

String getTypeName()

返回此类型名称的信息字符串。

TypeVariable>[] getTypeParameters()

返回TypeVariable对象的数组,这些对象表示由此GenericDeclaration对象以声明顺序表示的泛型声明声明的类型变量。

boolean isAnnotation()

如果此Class对象表示注释类型,则返回true。boolean isAnnotationPresent(Class annotationClass)如果此元素上存在指定类型的注释,则返回true,否则返回false。

boolean isAnonymousClass()

当且仅当基础类是匿名类时返回true。

boolean isArray()

确定此Class对象是否表示数组类。

boolean isAssignableFrom(Class> cls)

确定此Class对象表示的类或接口是否与指定的Class参数表示的类或接口相同,或者是它们的超类或超接口。

boolean isEnum()

当且仅当此类在源代码中声明为枚举时返回true。

boolean isInstance(Object obj)

确定指定的Object是否与此Class表示的对象分配兼容。

boolean isInterface()

确定指定的Class对象是否表示接口类型。

boolean isLocalClass()

当且仅当基础类是本地类时返回true。

boolean isMemberClass()

当且仅当底层类是成员类时返回true。

boolean isPrimitive()

确定指定的Class对象是否表示基本类型。

boolean isSynthetic()

如果此类是合成类,则返回true; 否则返回false。

T newInstance()

创建此Class对象表示的类的新实例。

String toGenericString()

返回描述此Class的字符串,包括有关修饰符和类型参数的信息。

String toString()

将对象转换为字符串。

java.lang.class对象_Java反射——java.lang.Class 类简介相关推荐

  1. java class 生成对象_Java反射机制(创建Class对象的三种方式)

    1:SUN提供的反射机制的类: java.lang.Class java.lang.reflect.Constructor java.lang.reflect.Field java.lang.refl ...

  2. java 解析xml 对象_Java反射——读取XML文件,创建对象

    读取XML文件,创建对象 config.xml import java.io.*; import java.lang.reflect.Constructor; import javax.xml.par ...

  3. java 反射获取对象_java 反射-反射对象的获取

    java.lang.Class对象的获取方式 @SuppressWarnings("all") //压制警告 public class Deam { public static v ...

  4. java反射之获取class对象_java反射之获取枚举对象

    项目中导入大量枚举对象,用来定义常量.随着带来一个问题,就是每个枚举类都需要通过key来获取对应枚举的需求. public enum ExamType { CRAFT(1, "草稿" ...

  5. java技术详解_Java反射技术详解及实例解析

    前言 相信很多人都知道反射可以说是Java中最强大的技术了,它可以做的事情太多太多,很多优秀的开源框架都是通过反射完成的,比如最初的很多注解框架,后来因为java反射影响性能,所以被运行时注解APT替 ...

  6. 反射在java中的应用_java反射机制在项目中的运用

    定义:Reflection是java开发语言特性之一,它允许运行中的java程序对自身进行检测,自审,并能操作程序内部的属性和方法,Reflection是java被视为动态语言关键之一.允许程序从执行 ...

  7. java映射的概念_Java 反射 概念理解

    文章来源:http://hollischuang.gitee.io/tobetopjavaer/#/basics/java-basic/reflection 反射 反射机制指的是程序在运行时能够获取自 ...

  8. java 反射类成员_java 反射(二)类成员

    在Java反射的包中定义一个接口java.lang.reflect.Member,它有三个实现类java.lang.reflect.Field, java.lang.reflect.Method, a ...

  9. java反射创建带参数对象_反射 Java反射对象创建 - 闪电教程JSRUN

    Java反射 -Java反射对象创建 我们可以使用反射动态创建类的对象.通过调用其中一个构造函数. 然后我们可以访问对象的细分的值,设置它们的值,并调用它们的方法. 有两种方法来创建对象: 使用no- ...

最新文章

  1. 前端页面——Cookie与Session有什么区别
  2. Oracle初始化参数含义
  3. android资源目录---assets与res/raw区别
  4. SpringBoot整合easyexcel实现导入导出
  5. decimal类型对象里面定义什么类型_奥斯塔罗 单身开启桃花雷达 现阶段的我适合什么类型的对象?...
  6. 如何用jar命令对java工程进行打包
  7. Linux大作业任务书,《Linux系统管理》期末大作业任务书(2014.12)(1).doc
  8. 面试精讲之面试考点及大厂真题 - 分布式专栏 01 开篇词:我是怎样带你通过大厂面试
  9. xml转java代码_java 中xml转换为Bean实例解析(纯代码)
  10. 用html做工资查询登陆页面,薪资筛选页面.html
  11. 运行Java应用必须通过main()方法吗?
  12. yoga710怎么进入bios_重装系统看不懂bios?超详细中英文翻译,教你1分钟识别bios各项...
  13. Matlab图像处理系列2———空间域平滑滤波器
  14. 毕设-基于SSM仓库管理系统
  15. Mac终端adb安卓刷机
  16. vin码车架号查询易语言代码
  17. altium summer 9导入orcad dsn文件的方法
  18. el-descriptions
  19. java中直线距离的计算_java计算两点间的距离方法总结
  20. ps水花飞溅效果制作

热门文章

  1. Android 10.0添加关机动画和关机音乐
  2. 【好玩的小demo】ps修改微信QQ内置gif表情包
  3. Neve 1073 话放 变压器
  4. Cloud Studio 一个好用的在线编程工具
  5. 【MSRA】微软亚洲研究院实习经验收获整理
  6. 感应电动机的启动压降计算
  7. 360权重查询 360权重如何快速查询呢?
  8. 怎么保证ECU的“实时性”
  9. Deepin Linux v20+手工编译安装Git 2.32.0最新版(升级Git版本)
  10. [linux] macbook pro外界键盘更换command与ctrl键功能