[javaSE] 反射-获取类的成员属性和构造方法
成员属性和构造方法皆为对象,通过Class对象的方法可以得到
package com.tsh.reflect; import java.lang.reflect.Constructor;
import java.lang.reflect.Field; public class ReflectDemo {
public static void main(String[] args) {
printClassFields(new Integer(1));
printClassConstructs(new String("ss"));
}
/**
* 打印类的成员属性信息
* @param obj
*/
public static void printClassFields(Object obj){
Class c=obj.getClass();
System.out.println("类的名称:"+c.getName());
System.out.println("类的成员属性:");
Field[] fields=c.getDeclaredFields();
for(Field field:fields){
Class fieldClass=field.getType();
String fieldName=field.getName();
String fieldType=fieldClass.getSimpleName();
System.out.println(fieldType+" "+fieldName);
}
}
/**
* 打印类的构造方法
* @param obj
*/
public static void printClassConstructs(Object obj){
Class c=obj.getClass();
System.out.println("类的名称:"+c.getName());
System.out.println("类的构造方法:");
Constructor[] constructors=c.getDeclaredConstructors();
for(Constructor constructor : constructors){
Class[] paClass=constructor.getParameterTypes();
String name=constructor.getName();
int i=0;
String params=new String();
for(Class param : paClass){
if(i==0){
params+=param.getSimpleName();
}else{
params+=","+param.getSimpleName();
}
i++;
}
System.out.println(name+"("+params+"}");
}
}
}
输出结果:
类的名称:java.lang.Integer
类的成员属性:
int MIN_VALUE
int MAX_VALUE
Class TYPE
char[] digits
char[] DigitTens
char[] DigitOnes
int[] sizeTable
int value
int SIZE
long serialVersionUID
boolean $assertionsDisabled 类的名称:java.lang.String
类的构造方法:
java.lang.String(byte[]}
java.lang.String(byte[],int,int}
java.lang.String(byte[],Charset}
java.lang.String(byte[],String}
java.lang.String(byte[],int,int,Charset}
java.lang.String(int,int,char[]}
java.lang.String(char[],boolean}
java.lang.String(StringBuilder}
java.lang.String(StringBuffer}
java.lang.String(int[],int,int}
java.lang.String(char[],int,int}
java.lang.String(char[]}
java.lang.String(String}
java.lang.String(}
java.lang.String(byte[],int,int,String}
java.lang.String(byte[],int}
java.lang.String(byte[],int,int,int}
[javaSE] 反射-获取类的成员属性和构造方法的更多相关文章
- 使用反射获取类中的属性(可用于动态返回PO类的列,当做表格的表头)
//利用反射取类中的属性字段 try { Class clazz = Class.forName("houji.bean.model.TaskModel"); Field[] fi ...
- java反射获取类的成员函数,成员变量,构造函数
package com.imooc.reflect;import javax.sound.midi.Soundbank;import java.lang.reflect.Constructor;imp ...
- 反射获取类中的属性和set属性
package framework.base; import java.beans.IntrospectionException; import java.beans.PropertyDescript ...
- java 反射获取类的静态属性值
public class AppTest { private NodeClass nodeClass; public static String hehe = "hehe"; pu ...
- 福利->KVC+Runtime获取类/对象的属性/成员变量/方法/协议并实现字典转模型
我们知道,KVC+Runtime可以做非常多的事情.有了这个,我们可以实现很多的效果. 这里来个福利,利用KVC+Runtime获取类/对象的所有成员变量.属性.方法及协议: 并利用它来实现字典转模型 ...
- java利用反射获取类的属性及类型
java利用反射获取类的属性及类型. import java.lang.reflect.Field; import java.math.BigDecimal; import java.util.Map ...
- Java反射学习-1 - 反射获取类的属性,方法,构造器
新建一个Person类 package cn.tx.reflect; /** * 注解初步了解 * @author Administrator * */ public class Person { p ...
- java 通过反射获取类属性结构,类方法,类父类及其泛型,类,接口和包
首先自定义三个类 package reflection1; public interface MtInterface { void info(); } package reflection1; imp ...
- java 通过反射获取调用类方法及属性
首先说下反射是什么?反射是Sun公司推出的一组API,此组API位于Java.lang.reflect中 反射的作用是编写工具(例如eclipse),编写框架,当然对于一般的程序,我们不可能用反射来做 ...
随机推荐
- 据说,每一个 iOSer 都想要一张 Swift 大会门票
据说,每一个 iOSer 都想要一张中国首届 Swift 开发者大会的门票: 那么,福利来了-- fir.im 作为中国首届 Swift 大会的唯一钻石赞助商,有最后 2 张价值 600 多的门票(已 ...
- 搭建LNAMP环境(四)- 源码安装PHP7
上一篇:搭建LNAMP环境(三)- 源码安装Apache2.4 一.安装PHP7 1.yum安装编译php需要的包 yum -y install libxml2 libxml2-devel curl- ...
- ng-表单验证
表单验证<AngularJs> 常用的表单验证指令 1. 必填项验证 某个表单输入是否已填写,只要在输入字段元素上添加HTML5标记required即可: <input type ...
- 体验Visual Studio 2015 Windows Forms应用程序开发与维护
昨天到半夜还没有等到Visual Studio 2015的下载地址,实在熬不住就先休息了.北美地区的时区比北京时间要晚一些,今天早上到公司就看到Visual Studio 2015的下载地址,迅速的将 ...
- 探讨Nodejs中的作用域问题。
在JS中有全局作用域和函数作用域,而在Nodejs中也自己的作用域,分为全局作用域(global)和模块作用域. js作用域: 以前学js的时候我们的全局对象是window,如: var a = 10 ...
- SVN更改登录用户
如果装了TortoiseSVN: Settings -> Saved Data -> Authentication Data -> clear.即可清除保存的上个用户登录信息:当再次 ...
- 《BI那点儿事》数据挖掘初探
什么是数据挖掘? 数据挖掘(Data Mining),又称信息发掘(Knowledge Discovery),是用自动或半自动化的方法在数据中找到潜在的,有价值的信息和规则. 数据挖掘技术来源于数据库 ...
- GitHub入门教程 Hello World for GitHub
Intro 1.简介 What is GitHub? 2.什么是github? Create a Reposi ...
- AngularJS in Action读书笔记3——走近Services
试着想想这些问题:如果一个controller只关心自己所控制的view页面,那么对于整个application来说,你如何调用想要的function:如果controller从来都不会和其他cont ...
- RPC原理详解
RPC 功能目标 RPC 的主要功能目标是让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性. 为实现该目标,RPC 框架需提供一种透明调用机制让使用者不必显式的区分 ...