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的更多相关文章

  1. android jni ——Field & Method --> Accessing Field

    现在我们知道了怎样使用native code访问简单的数据类型和引用参考类型(string,array),下面我们来介绍怎样让jni代码去访问java中的成员变量和成员函数,然后可以再jni中回调ja ...

  2. 【反射】Reflect Class Field Method Constructor

    关于反射 Reflection 面试题,什么是反射(反射的概念)? 主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义 ...

  3. android jni (5)——Field & Method --> Accessing Mehtod

    在java编程语言中有非静态成员函数和静态成员函数,JNI允许我们访问到java中的成员函数,然后再jni中调用,这里我就来举例说明在jni中是如何做到的. 我们先在java中定义2个成员函数,一个非 ...

  4. field.setAccessible(true) 简介

    今天查看别人写的代码时,发现这样一句代码,顿时来了兴趣. 需要注意setAccessible 并不是在Field中的,而是在AccessibleObject中. 下面是AccessibleObject ...

  5. spring注解源码分析--how does autowired works?

    1. 背景 注解可以减少代码的开发量,spring提供了丰富的注解功能.我们可能会被问到,spring的注解到底是什么触发的呢?今天以spring最常使用的一个注解autowired来跟踪代码,进行d ...

  6. java自定义注解类

    一.前言 今天阅读帆哥代码的时候,看到了之前没有见过的新东西, 比如java自定义注解类,如何获取注解,如何反射内部类,this$0是什么意思? 于是乎,学习并整理了一下. 二.代码示例 import ...

  7. 0035 Java学习笔记-注解

    什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...

  8. [JAVA] 注解学习@interface

    一直都看框架级的代码中都是各种annotation,一起来看看到底怎么弄的 例子1:直接定义一个annotation,并使用之: package com.base.annotation.example ...

  9. apt 根据注解,编译时生成代码

    apt: @Retention后面的值,设置的为CLASS,说明就是编译时动态处理的.一般这类注解会在编译的时候,根据注解标识,动态生成一些类或者生成一些xml都可以,在运行时期,这类注解是没有的~~ ...

随机推荐

  1. Hystrix使用详解

    原文参考:http://hot66hot.iteye.com/blog/2155036 一:为什么需要Hystrix? 在大中型分布式系统中,通常系统很多依赖(HTTP,hession,Netty,D ...

  2. CentOS 忘记root密码(重置root密码)

    首先开机选择Advanced options for ****这一行按回车: 然后选中最后是(recovery mode)这一行按"E"进入编辑页面: 将ro recovery改为 ...

  3. 线程池ThreadPoolExecutor使用原理

    本文来源于翁舒航的博客,点击即可跳转原文观看!!!(被转载或者拷贝走的内容可能缺失图片.视频等原文的内容) 若网站将链接屏蔽,可直接拷贝原文链接到地址栏跳转观看,原文链接:https://www.cn ...

  4. graphviz 的节点形状

    graphviz 的节点可以定义不同的外形,比如下面的定义, digraph tt1{     a[shape=box];     c[shape=lpromoter];     d[shape=do ...

  5. java 获取两个日期之间的所有日期(年月日)

    前言:直接上代码 java 获取两个日期之间的所有日期(年月日) /** * 获取两个日期之间的日期,包括开始结束日期 * @param start 开始日期 * @param end 结束日期 * ...

  6. CSS 高度(css height)

    DIV+CSS height高度知识教程篇 DIV CSS高度简介这里的CSS高度是指通过CSS来控制设置对象的高度.使用CSS属性单词height.单位可以使用PX,em等常用使用PX(像素)为ht ...

  7. 用Jquery去写树结构

    <!DOCTYPEhtml> <html> <head> <metacharset="utf-8"> <title>Tr ...

  8. OpenGL学习--开发环境

    1. VS2017 Professional安装 1.1. 下载 mu_visual_studio_professional_2017_x86_x64_10049787.exe 1.2. 双击开始安装 ...

  9. TileStache生成切片

    1.tilestache.cfg { "cache": { "name": "Disk", "path": " ...

  10. Modify Dokuwiki Email Template 修改 Dokuwiki 邮件模板

    Email Notification Templates   There are two places to modify 1) log in as Admin -> configuration ...