Class 反射获得构造,方法,属性,内部类等

反射中获取Class对象的方法===============================

1.静态----根据全路径获得-----------
Class clazz = Class.forName(String classpath全路径)
需要知道类的全路径,需要路径正确,否则抛出没有找到该类

2.类名.class
Class clazz = 类名.class
安全性高。性能好。推荐使用-------

3.对象名.getClass( )
Class clazz = 对象名.class

访问Class对应的类所包含的构造方法==============================
1.方法一
Constructor getConstructor(Class[]params)
返回Class对象指定的public构造方法 参数Class[]params与指定构造方法的参数一致
例子:
Constructor co=clazz.getConstructor(Class[]params)
clazz是Class的对象

2.方法二
Constructor[] getConstructors( )
返回该Class对象所表示的类的所有的public构造方法

3.方法三
Constructor getDeclaredConstructor(Class[]params)
返回该Class对象所表示的类的指定构造方法,与访问级别无关

4.方法四
Constructor[] getDeclaredConstructor()
返回该Class对象所表示的类的全部方法,与访问级别无关

从Class类中获取方法信息===============================================
1.方法一
Method getMethod(String name,Class[] params )
name是指定public方法的名称

2.方法二
Method[ ] getMethods( )

3.方法三
Method getDeclaredMethod(String name,Class[] params )

4.方法四
Method[ ]getDeclaredMethods( )

从Class类中获取属性信息================================================
1.方法一
Field getField(String name)
返回指定属性名的public属性

2.方法二
Field[] getFields()

3.方法三
Field getDeclaredField(String name)

4.方法四
Field[] getDeclaredField()
返回不考虑访问级别的所有属性

访问Class对应的类所包含的内部类==========================================

Class[] getDeclaredClasses();
返回该Class对象所对应类的全部内部类

访问Class对应的类所在的外部类
Class getDeclareingClass();

访问Class对象所对应类所继承的父类、所实现的接口等======================
int getModifiers()-----返回该类或接口所有的修饰符
Class[] getInterfaces()----返回对应类的全部接口
Package getPackage()------获取该类的包
String getName()-----返回类名
String getSimpleName------返回类的简称
Class getSuperclass()----返回该类的超类对应的Class对象

时间: 2024-10-11 17:42:43

Class 反射获得构造,方法,属性,内部类等的相关文章

代替Reflection(反射)的一些方法

Reflection(反射)是深入学习.Net必须掌握的技能之一.最初学Reflection的时候,的确是被惊住了,原来还可以这样.只要给你一个Assembly, 你就能获取到其中所有的类型,根据类型,你能够创建和操作对象的属性和方法,甚至是私有的.但是,每次使用Reflection,看着那些丑陋难懂的代码,都让人不敢直视.下面就介绍一些在特定场景下可以替换Reflection的方法. 1. 使用Reflection完成的简单Demo 我们首先创建一个Person类,这个类非常简单,一个Name

C#中的反射和扩展方法的运用

前段时间做了一个练手的小项目,名叫Book_Bar,用来卖书的,采用的是三层架构,也就是Models,IDAL,DAL,BLL 和 Web , 在DAL层中各个类中有一个方法比较常用,那就是 RowToClass ,顾名思义,也就是将 DataTable 中的数据封装到 Models 中.结果导致在DAL各个类中写了很多类似的方法,后来就直接把它抽取出来做成了 DataTable和 DataRow的扩展方法, 下面是代码: using System; using System.Collectio

反射学习2-通过反射机制动态获取属性的值模拟Struts的自动赋值

一.准备知识:   Java反射机制   处理事务的JavaBean   String的操作常用方法 二.模拟步骤   这里我们通过反射机制动态获取属性的值模拟Struts中的自动赋值. 1.首先创建一个简单的User类包含两个属性username和userid以及getter.setter方法: class User {     public User(){} private String username; private String userid; public String getUs

VS2010 F5调试时出现:“ 尝试运行项目时出错:未捕获通过反射调用的方法引发的异常”解决

S2010 F5调试时出现 尝试运行项目时出错:未捕获通过反射调用的方法引发的异常 两个解决方法:1) 打开项目属性,选择调试选项卡,将“启用非托管代码调试”一项钩上.2) 打开项目属性,选择调试选项卡,将“启用Visual Studio宿主进程“一项钩掉. 原文地址:https://www.cnblogs.com/gisoracle/p/9690123.html

乐字节Java反射之三:方法、数组、类加载器和类的生命周期

本文承接上一篇:乐字节Java发射之二:实例化对象.接口与父类.修饰符和属性 继续讲述Java反射之三:方法.数组.类加载器 一.方法 获取所有方法(包括父类或接口),使用Method即可. public static void test() throws Exception { Class<?> clz = Class.forName("com.shsxt.ref.simple.User "); //获取属性 System.out.println("======

python基础27——反射&amp;内置方法

反射 什么是反射? 指的是在程序运行过程中可以"动态(不见棺材不掉泪)"获取对象的信息 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省) 什么是反射机制? 反射机制指的是在程序的运行状态中 对于任意一个类,都可以知道这个类的所有属性和方法 对于任意一个对象,都能够调用他的任意方法和属性 这种动态获取程序信息以及动态调用对象的功能称为反射机制 如何实现反射? class People: def __init__(self,

反射类的方法(其中main方法比较特殊)

package reflet; import java.util.List; public class person { public String name="hahaah"; public void aa1()//方法 { System.out.println("aa1"); } public void aa1(String name,int password) { System.out.println(name+":"+password);

反射之获取方法信息

本文接上文"反射之Class类的使用",以编写一个用来获取类的信息(成员函数.成员变量)的工具类来讲解"反射之获取方法信息" 1.新建工具类,命名ClassUtil,输入一个对象(Object),输出该对象的基础信息方法(printClassMessage) 1 /** 2 * 打印类的信息,成员函数.成员变量 3 * Created by Format on 2017/6/3. 4 */ 5 public class ClassUtil { 6 7 } 2.获取类

jQuery中一些不常用的方法属性【转载】

index(subject) 搜索与参数表示的对象匹配的元素,并返回相应元素的索引值.如果找到了匹配的元素,从0开始返回:如果没有找到匹配的元素,返回-1. data() data(elem):为页面对象添加唯一标识. data(name, value):将数据保存在元素的一个key里面.$("#box").data("shape","rectangle"). data(name):获取值.$("#box").data(&qu

Jquery attr()方法 属性赋值和属性获取

jquery中用attr()方法来获取和设置元素属性,attr是attribute(属性)的缩写,在jQuery DOM操作中会经常用到attr(),attr()有4个表达式. 1. attr(属性名)       //获取属性的值(取得第一个匹配元素的属性值.通过这个方法可以方便地从第一个匹配元素中获取一个属性的值.如果元素没有相应属性,则返回 undefined ) 2. attr(属性名, 属性值)   //设置属性的值 (为所有匹配的元素设置一个属性值.) 3. attr(属性名,函数值