精华内容
下载资源
问答
  • NULL 博文链接:https://bijian1013.iteye.com/blog/2299135
  • * 获取属性 * @param clazz * @param fieldName * @return */ public static Field getDeclaredField(Class clazz, String fieldName) { if (Strings.isNullOrEmpty(fieldName)) { return null; } whi...
        /**
         * 获取属性
         * @param clazz
         * @param fieldName
         * @return
         */
        public static Field getDeclaredField(Class clazz, String fieldName) {
            if (Strings.isNullOrEmpty(fieldName)) {
                return null;
            }
            while (clazz != null) {
                try {
                    return clazz.getDeclaredField(fieldName);
                } catch (NoSuchFieldException e) {
    
                }
                clazz = clazz.getSuperclass();
            }
            return null;
        }

     

    展开全文
  • 要求:获取父类的私有id的属性值(传进来的是一个泛型T) 反射流程,是先获取到class对象,然后通过Field来获取对象的属性方法 常用的方法是: getFields 可以获取自身和继承公共的属性 getDeclaredFields 可以...

    要求:获取父类的私有id的属性值(传进来的是一个泛型T)

    反射流程,是先获取到class对象,然后通过Field来获取对象的属性方法

    常用的方法是:

    getFields  可以获取自身和继承公共的属性

    getDeclaredFields  可以获取公共和私有的属性(private、public、protected,和访问权限无关),不包括继承

    getField  表示获取指定的一个公共的字段,包括继承的

    getDeclaredField  表示获取本类中的一个指定的字段(private、protected、public,与访问权限无关),不包括继承的字段

     

     

     public T test(T t) {
    
            try {
                Class clazz = t.getClass();
                clazz = clazz.getSuperclass();
                Field field = null;
                field = clazz.getDeclaredField("id");
                field.setAccessible(true);
                if(field.get(t) == null){
                    return mongoRepository.save(t);
                }
            } catch (NoSuchFieldException | IllegalAccessException e) {
                e.printStackTrace();
            }
                return t;
        }

    这边clazz表示的就是父类的对象,可以直接用getDeclaredField获取父类id;

    然后通过id获取到传进来的属性值,field.get(t)就是获取到的id属性

    注意现在拿到的是父类的对象,getDeclaredField也就无法获取到子类对象的字段了,如果填写错误就会报NoSuchFieldException的异常了

    展开全文
  • 反射获取所有父类属性

    千次阅读 2020-07-13 16:45:55
    自己写了个反射获取对象属性值封装成map的一个方法, 用了发现无法获取父类的, 然后发现使用getSuperclass可以,获取遂记录 代码如下: /** * @param params 空map用于返回 和 以后的扩展 * @param vo 带有...

    自己写了个反射获取对象属性值封装成map的一个方法,

    用了发现无法获取父类的,

    然后发现使用getSuperclass可以,获取遂记录

    代码如下:

     /**
         * @param params 空map用于返回 和 以后的扩展
         * @param vo     带有参数的vo
         * @return
         */
        public static Map<String, Object> getParamList(Map<String, Object> params, Object vo) {
            Field[] vos = vo.getClass().getDeclaredFields();
            for (Field field : vos) {
                field.setAccessible(true);
                try {
                    if (!StringUtils.isEmpty(field.get(vo))) {
                        params.put(field.getName(), field.get(vo));
                    }
                } catch (IllegalAccessException e) {
                    e.printStackTrace();
                }
            }
            Class<?> superclass = vo.getClass();
            while (superclass != null) {
                superclass = superclass.getSuperclass();
                if (superclass.getName().equals("java.lang.Object")) {
                    break;
                }
                //获取父类的属性
                Field[] superField = superclass.getDeclaredFields();
                for (Field field : superField) {
                    field.setAccessible(true);
                    try {
                        if (!StringUtils.isEmpty(field.get(vo))) {
                            params.put(field.getName(), field.get(vo));
                        }
                    } catch (IllegalAccessException e) {
                        e.printStackTrace();
                    }
                }
            }
            return params;
        }
    getDeclaredFields();//方法为获取 该类的所有字段属性 ,但是不包括父类的
    setAccessible(true);//为了访问private修饰的属性
    getSuperclass();//获取父类的所有属性

    不懂的可以留言。微信17625089935

    展开全文
  • 备忘一下,拿Field的时候要用getClass().getSuperclass()来获取Field: Field f= getClass().getSuperclass().getDeclaredField("sqlSessionFactory"); f.setAccessible(true); ssf= (SqlSessionFactory) f.get(this...

    备忘一下,拿Field的时候要用getClass().getSuperclass()来获取Field:

    Field f= getClass().getSuperclass().getDeclaredField("sqlSessionFactory");
    f.setAccessible(true);
    ssf= (SqlSessionFactory) f.get(this);
    
    展开全文
  • 定义两个类Person是父类,Student是子类 public class Person { private String username;...通过反射分别获取父类和子类的属性 public class ReflectTest { public static void main(String
  • java反射机制获取父类属性

    万次阅读 2019-01-10 10:41:27
    首先查看反射机制如何获取类的方法的: Class clazz = object.getClasss(); clazz.getDeclareFields(); Calzz.getFields(); 通过getClass()方法来获取类的定义信息,通过定义信息再调用getFields()方法来获取类的...
  • 通过反射我们可以获取到一个类的属性和方法,但获取父类的private的属性却不可以直接获取,需要递归调用superclass来获取属性 SuperClass.java public class SuperClass { private String name; private String ...
  • 反射获取父类私有字段

    千次阅读 2019-03-19 16:08:15
    @Test public void myTest ( ) ... ...//打印子类和父类所有字段,注意:JsonUtil改成你自己的json解析工具 } catch ( Exception e ) { e . printStackTrace ( ) ; } }
  • 俗话说:反射反射,程序猿的快乐。特意转载这篇文章,当做学习笔记 原文链接 Java代码  package com.syh.jdbc.reflection_super;    /**   * 父类   * @author syh   *   */    public class ...
  • java反射获取父类和本类属性并赋值

    千次阅读 2019-03-30 21:01:07
    // Map --> Bean 1: 利用Introspector,PropertyDescriptor实现 Map --> Bean public static <T> T transMap2Bean(Map<String, Object> map, T t) { try { BeanInfo beanInfo = Introspec...
  • * 反射 options并修改样式 picker */ public class MyOptionsPickerBuilder extends OptionsPickerBuilder { //Required public MyOptionsPickerBuilder(Context context, OnOptionsSelectListener listener) { ...
  • 1.定义父类属性和方法 //父类 public class Parent { public String publicField = "1"; String defaultField = "2"; protected String protectedField = "3"; private String privateField = "4"; public...
  • 看一段数据库的表转化成用户可以看懂的数据,也就是把一些字段比如Date用ms存的,转化为'yyyy-MM-dd'这种格式,但是由于字段太多,所以利用Java反射机制自带的BeanUtils相关的方法来进行转化(要求两个类的属性名称相同...
  • java的反射机制操作父类的所有属性和方法。
  • clazz.getFields()获取成员变量2、 clazz.getDeclaredFields()获取当前类的所有属性3、 clazz.getMethods()获取当前对象及父类对象的所有公共方法4、 clazz.getDeclaredMethods()获取当前类所有的方法5、反射 ...
  • } } 获取父类私有字段 @Test public void myTest() { CustomerApiInfoReqDtoNew t = new CustomerApiInfoReqDtoNew();//改成你要操作的子类 Class className = t.getClass(); Map param = new HashMap(); try{ for ...
  • java反射获取父类属性的值

    千次阅读 2016-04-15 19:06:53
    由于不能更改其代码,于是用反射机制很坑爹的获取了某个属性的值。。。调试时,自己编写了几个类用来测试,整理如下。父类:package date0415.pm.反射;public class TestParent{ private String str1="www";//初始值...
  • 通过反射我们可以获取到一个类的属性和方法,但获取父类的private的属性却不可以直接获取,需要递归调用superclass来获取属性 SuperClass.java public class SuperClass { private String name; private String ...
  • 通过反射获取父类私有成员变量

    千次阅读 2019-09-19 10:19:19
    // 获取当前对象的所有属性字段 // getFields():获取public修饰的字段 // getDeclaredFields()获取所有的字段包括private修饰的字段 Field [ ] f = aClass . getDeclaredFields ( ) ; Stream < Field ...
  • PropertyInfo[] p = user.GetType().GetProperties(BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Instance);   转载于:...
  • * 获取父类中的所有属性和方法 工具类 * @author zhangwenchao * */ public class SuperClassReflectionUtils { /** * 循环向上转型, 获取对象的 DeclaredMethod * @param object : 子类对象 * @param ...
  • 通过反射设置父类属性

    千次阅读 2020-03-23 20:02:54
    实际开发有时候需要使用反射进行属性赋值 【详解】 package com.it.domain; import lombok.Data; @Data public class Person { private String name; private int age; } package com.it.domain; import ...
  • 继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加 新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。通过使用继承我们能够非常方便地复用以前的代码。 正文 public class ...
  • NULL 博文链接:https://1017401036.iteye.com/blog/2343706
  • Java 通过反射获取父类字段的方法

    千次阅读 2018-04-24 17:00:16
    public static < T > T convertJsonRequestToVo...1、java反射获取父类属性的值 https://blog.csdn.net/Mingyueyixi/article/details/51164061 2、 Java-Reflection反射-获取包括父类在内的所有字段 ...
  • 按照循环渐进的方式,接下来,介绍反射中属性和普通的方法。 在这里简单介绍,反射调用属性和方法会用到的新类,Method类和Field类。 Method类的常用API: getModifiers() : 获取方法的修饰符 getName(): 获取...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 59,731
精华内容 23,892
关键字:

反射获取父类中的属性