java.lang.class对象_Java反射——java.lang.Class 类简介
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 类简介相关推荐
- java class 生成对象_Java反射机制(创建Class对象的三种方式)
1:SUN提供的反射机制的类: java.lang.Class java.lang.reflect.Constructor java.lang.reflect.Field java.lang.refl ...
- java 解析xml 对象_Java反射——读取XML文件,创建对象
读取XML文件,创建对象 config.xml import java.io.*; import java.lang.reflect.Constructor; import javax.xml.par ...
- java 反射获取对象_java 反射-反射对象的获取
java.lang.Class对象的获取方式 @SuppressWarnings("all") //压制警告 public class Deam { public static v ...
- java反射之获取class对象_java反射之获取枚举对象
项目中导入大量枚举对象,用来定义常量.随着带来一个问题,就是每个枚举类都需要通过key来获取对应枚举的需求. public enum ExamType { CRAFT(1, "草稿" ...
- java技术详解_Java反射技术详解及实例解析
前言 相信很多人都知道反射可以说是Java中最强大的技术了,它可以做的事情太多太多,很多优秀的开源框架都是通过反射完成的,比如最初的很多注解框架,后来因为java反射影响性能,所以被运行时注解APT替 ...
- 反射在java中的应用_java反射机制在项目中的运用
定义:Reflection是java开发语言特性之一,它允许运行中的java程序对自身进行检测,自审,并能操作程序内部的属性和方法,Reflection是java被视为动态语言关键之一.允许程序从执行 ...
- java映射的概念_Java 反射 概念理解
文章来源:http://hollischuang.gitee.io/tobetopjavaer/#/basics/java-basic/reflection 反射 反射机制指的是程序在运行时能够获取自 ...
- java 反射类成员_java 反射(二)类成员
在Java反射的包中定义一个接口java.lang.reflect.Member,它有三个实现类java.lang.reflect.Field, java.lang.reflect.Method, a ...
- java反射创建带参数对象_反射 Java反射对象创建 - 闪电教程JSRUN
Java反射 -Java反射对象创建 我们可以使用反射动态创建类的对象.通过调用其中一个构造函数. 然后我们可以访问对象的细分的值,设置它们的值,并调用它们的方法. 有两种方法来创建对象: 使用no- ...
最新文章
- 前端页面——Cookie与Session有什么区别
- Oracle初始化参数含义
- android资源目录---assets与res/raw区别
- SpringBoot整合easyexcel实现导入导出
- decimal类型对象里面定义什么类型_奥斯塔罗 单身开启桃花雷达 现阶段的我适合什么类型的对象?...
- 如何用jar命令对java工程进行打包
- Linux大作业任务书,《Linux系统管理》期末大作业任务书(2014.12)(1).doc
- 面试精讲之面试考点及大厂真题 - 分布式专栏 01 开篇词:我是怎样带你通过大厂面试
- xml转java代码_java 中xml转换为Bean实例解析(纯代码)
- 用html做工资查询登陆页面,薪资筛选页面.html
- 运行Java应用必须通过main()方法吗?
- yoga710怎么进入bios_重装系统看不懂bios?超详细中英文翻译,教你1分钟识别bios各项...
- Matlab图像处理系列2———空间域平滑滤波器
- 毕设-基于SSM仓库管理系统
- Mac终端adb安卓刷机
- vin码车架号查询易语言代码
- altium summer 9导入orcad dsn文件的方法
- el-descriptions
- java中直线距离的计算_java计算两点间的距离方法总结
- ps水花飞溅效果制作
热门文章
- Android 10.0添加关机动画和关机音乐
- 【好玩的小demo】ps修改微信QQ内置gif表情包
- Neve 1073 话放 变压器
- Cloud Studio 一个好用的在线编程工具
- 【MSRA】微软亚洲研究院实习经验收获整理
- 感应电动机的启动压降计算
- 360权重查询 360权重如何快速查询呢?
- 怎么保证ECU的“实时性”
- Deepin Linux v20+手工编译安装Git 2.32.0最新版(升级Git版本)
- [linux] macbook pro外界键盘更换command与ctrl键功能