java反射代码获取属性,java 反射获取属性

如何通过Java反射获取一个类属性的类型?要类型Class<

import java.lang.reflect.Field;

创新互联建站是专业的大悟网站建设公司,大悟接单;提供网站设计、成都做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行大悟网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

/**

* 简单反射

*

* @author huanghuapeng 2017年3月21日

* @see

* @since 1.0

*/

public class CountLine {

public static void main(String[] args) {

Person person = new Person();

Class? extends Person clazz = person.getClass();

Field[] fields = clazz.getDeclaredFields();

for (Field field : fields) {

Class? type = field.getType();

System.out.println(type);

}

}

}

class Person {

private int id;

private String name;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

}

java怎么通过反射得到属性的类型

Class? cls=Class.forName(className);//通过类的名称反射类

Object obj=cls.newInstance();//对象实例化

Field field=cls.getField(fieldName);//这个对应的是属性

fieldValue=field.get(obj);//这个就是属性的值

java中如何通过反射获取类的属性

/**

* 根据实例化对象获取对象的全部属性

* @param obj 实例化对象

* @return 全部属性

* @throws Exception

*/

public static String[] getFileNameFromObj(Object obj) throws Exception{

if (obj == null) {

return null;

}

Field[] fields = obj.getClass().getDeclaredFields();

String[] fieldNames = new String[fields.length];

for (int i = 0; i fields.length; i++) {

fieldNames[i] = fields[i].getName();

}

return fieldNames;

}

注意:前提是对象可以实例化。

如何通过Java反射获取一个类属性的类型?要类型Class

先获取Method对象

以下仅供参考

package com.kidd.test.zhidao;

import java.lang.reflect.Method;

/**

* Hello world!

*

*/

public class Main {

public static void main(String[] args) {

Method method1 = null;

Method method2 = null;

try {

method1 = Class.forName("com.kidd.test.zhidao.Cat").getMethod("getName", (Class?[]) null);

method2 = Class.forName("com.kidd.test.zhidao.Cat").getMethod("getChilds", (Class?[]) null);

} catch (NoSuchMethodException ex) {

ex.printStackTrace();

} catch (SecurityException ex) {

ex.printStackTrace();

} catch (ClassNotFoundException ex) {

ex.printStackTrace();

}

if (null != method1) {

System.out.println(method1.getGenericReturnType().getTypeName());

}

if (null != method2) {

System.out.println(method2.getGenericReturnType().getTypeName());

}

}

}

class Cat {

private String name;

private Cat[] childs;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Cat[] getChilds() {

return childs;

}

public void setChilds(Cat[] childs) {

this.childs = childs;

}

}

如何利用java的反射机制动态的取得对象的属性

Java.lang.Class

getDeclaredFields()

返回 Field 对象的一个数组,这些对象反映此 Class

对象所表示的类或接口所声明的所有字段。

Java.lang.reflect.Field

getName()

返回此 Field 对象表示的字段的名称。

getGenericType()

返回一个 Type 对象,它表示此 Field 对象所表示字段的声明类型。

以上是jdk里面的一些用法,就是用你想要获取对象的属性得到它的class 然后调用 getDeclaredFields()就可以得到字段数组了。

然后再用下面的方法就可以得到属性名,类型这一些。

很简单,要想实现现复杂的功能就再找一下api 找出相应的方法。


当前文章:java反射代码获取属性,java 反射获取属性
本文URL:http://cdiso.cn/article/pheosh.html

其他资讯