package com.lf.testreflection;

import java.lang.reflect.Field;
import java.lang.reflect.Method; import org.junit.Test; public class ClassTest{ @Test
public void testSomthing()throws Exception {
//创建运行时类的对象
Class cla = Person.class;
// 创建运行时Person的对象
Person person = (Person)cla.newInstance();
// 通过cla获取对象的属性
Field field = cla.getDeclaredField("name");
// 设置可以访问的权限
field.setAccessible(true);
// 设置相应的属性值
field.set(person, "kity");
//获取相应的属性(public可以使用下面方法获取)
field = cla.getField("address");
field.set(person, "NewYo");
field = cla.getDeclaredField("age");
field.setAccessible(true);
field.set(person, 18); System.out.println(person);
// 获取无参方法
Method method = cla.getMethod("learn");
method.invoke(person);
// 获取有参方法
Method method2 =cla.getMethod("readSomething",String.class);
method2.invoke(person, "ainsy");
// 获取多参方法
Method method3 =cla.getMethod("readSomething",int.class,String.class);
method3.invoke(person, 20,"ainsy");
// 获取所有的属性
Field[] fields = cla.getDeclaredFields();
for (Field field2 : fields) {
// 每个属性的修饰符
System.out.print(field2.getModifiers()+" ");
// 每个属性名
System.out.print(field2.getName()+" ");
// 获取属性的类型
Class type = field2.getType();
System.out.println(type);
} // 调用运行时本身的.class属性
Class cla2 = Person.class;
//打印类路径
System.out.println(cla2.getName()); // 通过运行时类的对象获取
Person p = new Person();
Class cla3 = p.getClass();
System.out.println(cla3.getName());
}
}

Java 反射的基本应用的更多相关文章

  1. 第28章 java反射机制

    java反射机制 1.类加载机制 1.1.jvm和类 运行Java程序:java 带有main方法的类名 之后java会启动jvm,并加载字节码(字节码就是一个类在内存空间的状态) 当调用java命令 ...

  2. Java反射机制

    Java反射机制 一:什么事反射机制 简单地说,就是程序运行时能够通过反射的到类的所有信息,只需要获得类名,方法名,属性名. 二:为什么要用反射:     静态编译:在编译时确定类型,绑定对象,即通过 ...

  3. java反射(基础了解)

    package cn.itcast_01; /** *Person类 */ public class Person {    /** 姓名 */    private String name;     ...

  4. java基础知识(十一)java反射机制(上)

    java.lang.Class类详解 java Class类详解 一.class类 Class类是java语言定义的特定类的实现,在java中每个类都有一个相应的Class对象,以便java程序运行时 ...

  5. java基础知识(十一)java反射机制(下)

    1.什么是反射机制? java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象都能够调用他的属性和方法,这种动态获取属性和方法的功能称为java的反射机制. ...

  6. java反射学习之二万能EXCEL导出

    一.EXCEL导出的实现过程 假设有一个对象的集合,现在需要将此集合内的所有对象导出到EXCEL中,对象有N个属性:那么我们实现的方式是这样的: 循环这个集合,在循环集合中某个对象的所有属性,将这个对 ...

  7. java反射学习之一反射机制概述

    一.反射机制背景概述 1.反射(reflection)是java被视为动态语言的一个关键性质 2.反射机制指的是程序在运行时能获取任何类的内部所有信息 二.反射机制实现功能概述 1.只要给定类的全名, ...

  8. java反射 之 反射基础

    一.反射 反射:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为 ...

  9. java反射 cglib asm相关资料

    有篇文章对java反射的调用的效率做了测试,写的比较好.猛击下面地址 http://www.blogjava.net/stone2083/archive/2010/09/15/332065.html ...

  10. 超详细的java反射教程

    看技术博客时,看到关于java反射的博文,写的非常好.猛击下面的地址,开始java反射之旅 中文翻译地址:http://ifeve.com/java-reflection/ 英文原版地址:http:/ ...

随机推荐

  1. 使用CodeDOM实现代码生成及动态编译

    参考资料: http://www.cnblogs.com/lichdr/category/12610.html http://www.cnblogs.com/whitewolf/category/25 ...

  2. jq each 用法以及js与json互转

    $(function(){ var json = '[{"id":"1","tagName":"apple"},{&qu ...

  3. OpenMP for Fortran

    OpenMP for Fortran OpenMP Directive Syntax of OpenMP compiler directive for Fortran: !$OMP Directive ...

  4. 【转】Unity3D开发之Http协议网络通信

    之前unity3d项目要做跟服务器通信的模块,然后服务器那边的协议是基于http的Jsonrpc通信方式一开始,用C#的本身类HttpWebRequest来提交请求,很快就在电脑上面成功了,代码也很简 ...

  5. ORACLE FormBuilder触发器执行顺序

    1.当打开FORM时: (1)PRE-FORM (2)PRE-BLOCK(BLOCK级) (3)WHEN-NEW-FORM-INSTANCE (4)WHEN-NEW-BLOCK-INSTANCE (5 ...

  6. jquery autocomplete插件结合ajax使用

    <%@ page isELIgnored="false"%> <%@ page contentType="text/html; charset=UTF- ...

  7. 使用SecureCRT连接ubuntu

    SecureCRT SSH2连接新装的UBUNTU 14.04 LTS 发现UBUNTU默认没有安装SSH 服务 在UBUNTU上 sudo apt-get install openssh-serve ...

  8. Lambda 中如果构建一个查询条件,扔该Where返回我们需要的数据。

    有一个需求,比如所 省市县 这三个查询条件 都可能有可能没有,但是我们的查询条件怎么构建呢 首先需要看一下 Lambda中Where这个方法需要什么参数 public static IEnumerab ...

  9. 轮询、select、 epoll

    网卡设备对应一个中断号, 当网卡收到网络端的消息的时候会向CPU发起中断请求, 然后CPU处理该请求. 通过驱动程序 进而操作系统得到通知, 系统然后通知epoll, epoll通知用户代码.  一. ...

  10. Dom方式解析XML

    public class TestXML { public static void main(String[] args) throws SAXException, IOException { //D ...