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都可以,在运行时期,这类注解是没有的~~ ...
随机推荐
- 【转】Java线程详解
Java线程:概念与原理 一.操作系统中线程和进程的概念 现在的操作系统是多任务操作系统.多线程是实现多任务的一种方式. 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程 ...
- Django基础九之中间件
一 前戏 我们在前面的课程中已经学会了给视图函数加装饰器来判断是用户是否登录,把没有登录的用户请求跳转到登录页面.我们通过给几个特定视图函数加装饰器实现了这个需求.但是以后添加的视图函数可能也需要加上 ...
- java获取本月第一天和最后一天
public class CalendarTest { public static void main(String[] args) { // 获取当前年份.月份.日期 Calendar cale = ...
- Spring Boot--02MVC设置
package com.smartmap.sample.ch1.conf; import java.util.List; import javax.servlet.http.HttpServletRe ...
- 报表在vista和win7下无法浏览应用的解决办法
对于vista和win7系统,报表工具有着良好的兼容性,无论是设计器还是实际应用.有些客户在安装报表设计报表的时候没有遇到问题,但是在这两种系统下会发现无法启动应用,或者打开设计器自带的ie浏览 ...
- git bash 出现vim弹框的时候怎么退出
如果是输出状态,首先按Esc键退出输入状态,然后按Shift+“;”,再输入q!或wq!(不保存改动,wq!是保存文件的写入修改)退出. so easy!!
- Object、T(以下代指泛型)、?的区别
因为最近看了很多项目底层都使用了T,?泛型,于是百度了一下有如下理解 我们先来试着理解一下Object类,学习Java的应该都知道Object是所有类的父类,注意:那么这就意味着它的范围非常广!首先记 ...
- Oracle EBS 多节点停应用
adstpall.sh -mode=allnodes app/apps
- Oracle ALL DBA表
select * from all_tab_comments -- 查询所有用户的表,视图等 select * from user_tab_comments -- 查询本用户的表,视图等 select ...
- 退出全屏监听ESC事件
fullscreenchange事件 fullscreenchange:当窗口大小改变时触发 isFullscreen:全局变量 window.addEventListener("fulls ...