class , field , method
Class类
由于Class类没有公共构造方法,所以创建Class的对象的方法有以下几种:
1.通过Class.forName静态方法返回Class类的一个实例
2.通过类名.class来获取一个Class类的实例
3.代码运行在非静态区,通过this.getClass()获取Class类的一个实例
Class对象既然是描述一个类,那么我们通过该Class的实例能够做什么事情?
1.获取类名
2.获取类的修饰限定符
3.获得一个类的属性
1).根据一个属性名获取一个属性的描述
2).获得一个类的公共的属性的描述
3).获取一个类的全部public属性的描述
4)根据一个属性名获取一个在类中声明的属性的描述
5)获取所有在类中声明的属性的描述
4.获取一个类的方法
根据一个方法的名字获取类中的一个public的方法的描述
获取所有在类中式public的方法的描述
根据一个方法名获取在类中声明的一个方法的描述
获取所有在类中声明的方法的描述
返回cls所代表的类的实例
cls.getMethod(name,parameterTypes)
cls.getMethods()
cls.getDeclaredMethod(name,paeameterTypes)
cls.getDeclaredMethods
Field类
获取其属性
使用Filed类的一个实例,来描述cls类的实例中一个属性
获取属性的名字
获取属性的类型
获取属性的限定符
暴力设置:设置field的访问:field。setAccessible(true)
Method类
通过cls.get DeclaredMethod获取Method对象
获取方法名
方法的参数类型 Clss[] paraType = m.getParameterTypes();
方法的返回值类型
获取方法的修饰符 int modifiers = m.getModifiers();
方法是可以执行的,使用invoke执行methid对象所表示的方法m.invoke(obj,args);
使用反射相关类,为对象p设置name属性的值
设置器的形参和属性的类型应当一致
相当于P方法调用setName方法
class , field , method的更多相关文章
- android jni ——Field & Method --> Accessing Field
现在我们知道了怎样使用native code访问简单的数据类型和引用参考类型(string,array),下面我们来介绍怎样让jni代码去访问java中的成员变量和成员函数,然后可以再jni中回调ja ...
- 【反射】Reflect Class Field Method Constructor
关于反射 Reflection 面试题,什么是反射(反射的概念)? 主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义 ...
- android jni (5)——Field & Method --> Accessing Mehtod
在java编程语言中有非静态成员函数和静态成员函数,JNI允许我们访问到java中的成员函数,然后再jni中调用,这里我就来举例说明在jni中是如何做到的. 我们先在java中定义2个成员函数,一个非 ...
- field.setAccessible(true) 简介
今天查看别人写的代码时,发现这样一句代码,顿时来了兴趣. 需要注意setAccessible 并不是在Field中的,而是在AccessibleObject中. 下面是AccessibleObject ...
- spring注解源码分析--how does autowired works?
1. 背景 注解可以减少代码的开发量,spring提供了丰富的注解功能.我们可能会被问到,spring的注解到底是什么触发的呢?今天以spring最常使用的一个注解autowired来跟踪代码,进行d ...
- java自定义注解类
一.前言 今天阅读帆哥代码的时候,看到了之前没有见过的新东西, 比如java自定义注解类,如何获取注解,如何反射内部类,this$0是什么意思? 于是乎,学习并整理了一下. 二.代码示例 import ...
- 0035 Java学习笔记-注解
什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...
- [JAVA] 注解学习@interface
一直都看框架级的代码中都是各种annotation,一起来看看到底怎么弄的 例子1:直接定义一个annotation,并使用之: package com.base.annotation.example ...
- apt 根据注解,编译时生成代码
apt: @Retention后面的值,设置的为CLASS,说明就是编译时动态处理的.一般这类注解会在编译的时候,根据注解标识,动态生成一些类或者生成一些xml都可以,在运行时期,这类注解是没有的~~ ...
随机推荐
- CentOS 忘记root密码(重置root密码)
首先开机选择Advanced options for ****这一行按回车: 然后选中最后是(recovery mode)这一行按"E"进入编辑页面: 将ro recovery改为 ...
- 浅谈一致性哈希(My转)
一致性哈希(Consistent hashing)算法是由 MIT 的Karger 等人与1997年在一篇学术论文(<Consistent hashing and random trees: d ...
- C#(简单递归)和实现IComparable接口
递归: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syst ...
- mysqli 更新&插入操作及事务
$mysqli = new mysqli('localhost', 'root', '1234', 'shop'); $query1 = " update sw_goods set good ...
- hallo world
- 深入解析 ERP 计划的各个层次
ERP 生产计划管理按照 ERP 计划的层次主要分为:经营规划.销售和运作规划.主生产计划.物料需求计划.能力需求计划.执行能力计划.执行物料计划等. 经营规划是企业的战略规划,用于确定企业经营目标和 ...
- owin Claims-based认证登录实现
public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext c ...
- shell_processing
1.文本处理_2:grep,sed,awk 2.regular_expression 3.Test 一.文本处理_2 1.grep --Linux处理正则表达式的主要程序.正则表达式是一种符号表示 ...
- Vue2学习笔记:class和style
1.用法 <!DOCTYPE html> <html> <head> <title></title> <meta charset=&q ...
- SQL Server ->> 使用CROSS APPLY语句是遇到聚合函数中包含外部引用列时报错
本次遇到的问题是CROSS APPLY的内部查询语句中的聚合函数包含CASE WHEN判断,且同时又内部语句的表的列和外部引用的表的列,此时会报下列的错误. 消息 8124,级别 16,状态 1,第 ...