「java获取对象字段」java 获取对象的类型
今天给各位分享java获取对象字段的知识,其中也会对java 获取对象的类型进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java 怎么获取一个对象的属性
- 2、java 获取对象的数据类型的方法
- 3、Java如何获得一个对象中所有带set方法的字段(形成Field对象)?包括父类的。有现成的工具类
- 4、java中如何实现private反射获得对象字段值的
java 怎么获取一个对象的属性
1、过去某个类的某个属性:
可以通过对象调用其属性:
1)、创建对象 : 类名 对象名 = new 类名();
2)、调用属性: 对象名.属性
2、获取某个对象的所有属性
数组类型[] 数组名 = 对象名.getClass().getDeclaredFields();
java 获取对象的数据类型的方法
使用getClass方法可以获取一个对象的类型类,然后在调用该类的方法可以获取该类的相关信息,比如父类的名字,该类的名字等等:
package test;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class Demo2 {
String username = "sss";
public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException, NoSuchFieldException, SecurityException, NoSuchMethodException {
Demo2 t = new Demo2();
if (Demo2.class == t.getClass()) {
System.out.println("equal");
}
// 获取类名
System.out.println(t.getClass().getName());
// 获取父类名
System.out.println(t.getClass().getSuperclass());
//获取类中某个属性
Field f = t.getClass().getField("username");
//获取类中某个方法
Method m = t.getClass().getDeclaredMethod("main", String[].class);
}
}
Java如何获得一个对象中所有带set方法的字段(形成Field对象)?包括父类的。有现成的工具类
在Java中 是获取不了对象里面的字段的(除非是一些固定写死的字段) ,但是可以利用反射获取set方法,进行赋值
具体可以参考一下代码
/**
*
* @param obj 赋值对象
* @param value 赋值的值
* @throws Exception
*/
public void setMethod(Object obj ,String value) throws Exception{
if (obj == null ) {
return;
}
Method[] methods = obj.getClass().getMethods();
for (int i = 0; i methods.length; i++) {
Method method = methods[i];
String name = method.getName();
if(name.contains("set")){
method.invoke(obj,value);
}
}
}
java中如何实现private反射获得对象字段值的
背景介绍:在一个Bean类中,需要通过反射机制获得private字段属性时,如果用通常获得步骤获得会报如下错误: java.lang.IllegalAccessException: Class Test can not access a member of class Bean with modifiers "private" at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:57) at java.lang.reflect.Field.doSecurityCheck(Field.java:811) at java.lang.reflect.Field.getFieldAccessor(Field.java:758) at java.lang.reflect.Field.get(Field.java:228) 解决如下代码实现代码: 1.Bean.class内容如下: public class Bean { private String aa; } 2.Test.class内容如下: public class Test { public static void main(String[] args) throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException { Bean test = new Bean(); Field f = Bean.class.getDeclaredField("aa"); //其中,最关键的代码是: //f.setAccessible(true); //这行代码把对象data上的name字段设置为public访问属性. f.setAccessible(true); System.out.println(f.get(test)); f.set(test, "t2"); System.out.println(f.get(test)); } } 运行Test类输出如下: null t2
关于java获取对象字段和java 获取对象的类型的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-16,除非注明,否则均为
原创文章,转载请注明出处。