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. 532 -数组中的K-diff对

    例1: 输入: [3,1,4,1,5],k = 2  输出: 2 说明:阵列中有两个2-diff对,(1,3)和(3,5). 虽然我们在输入中有两个1,但我们应该只返回唯一对的数量. 例2: 输入: ...

  2. MongoDB2.x升级到3.x解决方案

    MongoDB2.x版本Maven配置 <!-- mongodb --> <dependency> <groupId>org.springframework.dat ...

  3. 第二节:Java开发环境的搭建

    一.认识并安装JDK 1.JDK(Java Development Kit)是Java开发工具集,包括Java运行环境(JRE).Java开发工具以及一些基础类库,进行Java开发所必须安装的软件. ...

  4. spring boot入门笔记(四) - 多环境配置、加载顺序、静态资源映射

    1.多环境配置 先描述下以前的开发流程:从SVN把项目下载到本地,各种修改配置文件,启动成功:完成功能后上传到公司的测试服务器,修改各种配置文件,启动成功:最后到上线的日子里,把新功能中涉及到的文件打 ...

  5. 修改request请求参数

    本质上来讲,request请求当中的参数是无法更改的,也不能添加或者删除: 但在后台程序中,一般对request的参数的操作,都是通过request的getParameter.getParameter ...

  6. Mybatis之reflection包源代码解析(一)

      一.序言 Mybatis作为ORM,实现了对象与关系数据库间的映射.Mybatis中的映射包含两个方面: 1.将对象中的值(parameterType所指定的对象)映射到具体的sql中,例如: & ...

  7. 序列化模块2 pickle

    import pickle # dump的结果是bytes,dump用的f文件句柄需要以wb的形式打开,load所用的f是'rb'模式# 支持几乎所有对象的序列化# 对于对象的序列化需要这个对象对应的 ...

  8. 移动端地区选择mobile-select-area插件的使用方法

    顾名思义,mobile-select-area插件就是使用在移动端上的进行地区选择的插件,而且使用方法简单,我就说我是怎么用的吧 一.准备工作 首先肯定要下载插件对应的css+js文件, 当你下载好这 ...

  9. java 接口默认修饰符

    概论: java接口可以是public 的,也可以是friendly的,但一定是abstracted的. java接口里的方法只能是public的.abstract的. java接口里的成员变量只能是 ...

  10. Week7——JSON

    1.什么是JSON? JSON是JavaScript对象表示法,全称是JavaScript Objec Notation.它是存储和交换文本信息的语法,类似于XML.JSON是轻量级的文本数据交换格式 ...