1. 测试实体类
public class TestClass {

    public String classInfo;

    public String getClassInfo() {
return classInfo;
} public TestClass(String classInfo) {
this.classInfo = classInfo;
System.out.println("invoke this param classInfo constructor.");
} public TestClass()
{
System.out.println("invoke this default constructor.");
}
public void setClassInfo(String classInfo) {
this.classInfo = classInfo;
} static {
System.out.println("init first class.");
} public void showinfo()
{
System.out.println("this is default show info method.");
} public void showinfo(String info)
{
System.out.println("this is have param method.");
System.out.println("param context:"+info);
} }
  1.   测试实现类
import org.junit.Test;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method; public class getClassInfoTest {
@Test
public void testDemo() throws Exception
{
/**
* 1.实现反射的第一步:获取对象的类型信息,java中指存放类型信息的.class文件
* 2.在这里是获取对象的所有构造方法.
* 3.找到需要的构造方法.
* 4.调用指定构造方法,创建对象.
*/
Class clazz=Class.forName("TestClass");
/**
* 获取构造方法
* 调用newInstance(...) 相当于 new TestClass(...)
*/
Constructor[] constructors=clazz.getConstructors();
System.out.println("constructor item:"+'\n');
arrayToStringItem(constructors);
Object test=constructors[0].newInstance();
Object test2=constructors[1].newInstance("hello"); /**
* 获取属性
*/
Field[] fields=clazz.getFields();
System.out.println("field item:"+'\n');
arrayToStringItem(fields);
Field field=fields[0];
System.out.println("field name:"+field.getName());
System.out.println("get dafault constructor field value:"+field.get(test));
System.out.println("get have param constructor field value:"+field.get(test2)); /**
* 获取方法
*/
Method[] methods=clazz.getMethods();
System.out.println("method item:"+'\n');
arrayToStringItem(methods);
System.out.println("invoke "+methods[0].getName()+" get return value:"+methods[0].invoke(test2));
} public void arrayToStringItem(Object[] args)
{
for (Object c:args)
{
System.out.println(c);
}
}
}

  

java反射常用类的更多相关文章

  1. java 反射提取类信息, 动态代理 和过滤某些方法演示

    java 反射提取类信息, 动态代理 和过滤某些方法演示 package org.rui.classts.reflects; import java.lang.reflect.Constructor; ...

  2. Java 反射 分析类和对象

    Java 反射 分析类和对象 @author ixenos 摘要:优化程序启动策略.在运行时使用反射分析类的结构和对象 优化程序启动策略 在启动时,包含main方法的类被加载.它会加载所有它需要的类. ...

  3. Java 反射 Class类

    Java 反射 Class类 @author ixenos 摘要:Class类在反射中的地位.构造Class对象的三种方式.Class对象构造对应类型对象的三种方式 Class类在反射中的地位 位于j ...

  4. Java API 常用类(一)

    Java API 常用类 super类详解 "super"关键字代表父类对象.通过使用super关键字,可以访问父类的属性或方法,也可以在子类构造方法中调用父类的构造方法,以便初始 ...

  5. 【java】java反射 Field类的研究使用

    java反射 Field类的研究使用 user.getClass().getFields() 和 user.getClass().getDeclaredFields(); 的区别是什么?

  6. 利用Java反射根据类的名称获取属性信息和父类的属性信息

    代码: import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Arrays; import java ...

  7. 利用java反射调用类的的私有方法--转

    原文:http://blog.csdn.net/woshinia/article/details/11766567 1,今天和一位朋友谈到父类私有方法的调用问题,本来以为利用反射很轻松就可以实现,因为 ...

  8. java反射工具类

    package com.yingchao.kgou.core; import java.lang.reflect.Field; import java.lang.reflect.InvocationT ...

  9. Java中常用类(包装类扩展知识)

    Java常用类有哪些? 八大基本数据类型的包装类 包装类均位于java.lang包中,包装类和基本数据类型的对应关系如下表: 基本数据类型 包装类 byte Byte boolean Boolean ...

随机推荐

  1. kernel笔记——网络收发包流程

    本文将介绍网络连接建立的过程.收发包流程,以及其中应用层.tcp层.ip层.设备层和驱动层各层发挥的作用. 应用层 对于使用socket进行网络连接的服务器端程序,我们会先调用socket函数创建一个 ...

  2. Nginx 的 access log 如何以 json 形式记录?

    Nginx 的 access log 默认是以空格分隔的字符串形式记录的,格式如下 log_format proxy '[$time_local] $remote_addr ' '$protocol ...

  3. web框架开发-Django视图层

    视图函数 一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. . ...

  4. (golang)HTTP基本认证机制及使用gocolly登录爬取

    内网有个网页用了HTTP基本认证机制,想用gocolly爬取,不知道怎么登录,只好研究HTTP基本认证机制 参考这里:https://www.jb51.net/article/89070.htm 下面 ...

  5. identity server4 证书

    我们需要对token进行签名, 这意味着identity server需要一对public和private key. 幸运的是, 我们可以告诉identity server在程序的运行时候对这项工作进 ...

  6. ASP.NET Core使用HttpClient的同步和异步请求

    using System; using System.Collections.Generic; using System.Collections.Specialized; using System.I ...

  7. 为奋战在HIS创新路上的医院信息科赋能

    为奋战在HIS创新路上的医院信息科赋能 南京都昌信息科技有限公司 袁永福 2017-7 ◆◆前言 近日,上海瑞金医院向我司表示:“我院从2000年开始自主开发医院信息系统,走出了一条可持续的信息化发展 ...

  8. 更改电脑名称后, Cnario无法播放画面和声音, 开机后停留在桌面, Cnario Player软件界面的停止按钮为蓝色可选状态

    症状描述 Cnario Player正常工作期间, 更改了电脑的Windows系统计算机名称(不是登录Windows的用户名), 重启后, 新计算机名生效. 此时Cnario自动启动, 但没有进入播放 ...

  9. yum 安装fuser命令

    yum install -y psmisc 转自:https://www.cnblogs.com/saneri/p/5465718.html 有时候我们需要umount某个挂载目录时会遇到如下问题: ...

  10. EntityFramework Core笔记:表结构及数据基本操作(2)

    1. 表结构操作 1.1 表名 Data Annotations: using System.ComponentModel.DataAnnotations.Schema; [Table("R ...