精华内容
下载资源
问答
  • * 获取属性 * @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的异常了

    展开全文
  • public final class ReflectionUtils { public static Method getDeclaredMethod(Object object, String methodName, Class<?> ...... Method method = null ; for(Class<?... clazz = object.getClass() ;...
    public  final class ReflectionUtils {
        public static Method getDeclaredMethod(Object object, String methodName, Class<?> ... parameterTypes){
            Method method = null ;
            for(Class<?> clazz = object.getClass() ; clazz != Object.class ; clazz = clazz.getSuperclass()) {
                try {
                    method = clazz.getDeclaredMethod(methodName, parameterTypes) ;
                    return method ;
                } catch (Exception e) {
                }
            }
            return null;
        }
    }
    
    展开全文
  • 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反射-获取包括父类在内的所有字段 ...
        public static <T> T convertJsonRequestToVo(HttpServletRequest request, Class<T> voClass) throws Exception {
            request.setCharacterEncoding("utf-8");
            String requestBody = HttpServletRequestUtil.readHttpServletRequestBody(request);
            Map<String, Object> requestMap = (Map<String, Object>) JSON.parse(requestBody);
            return convertMapToVo(requestMap, voClass);
        }
    
    
        public static <T> T convertMapToVo(Map<String, Object> map, Class<T> voClass) throws Exception {
            T obj = voClass.newInstance();
            if (map.isEmpty())
                return obj;
            BeanWrapper beanWrapper = new BeanWrapperImpl(obj);
    
            List<String> fieldList = Stream.of(voClass.getDeclaredFields())
                    .map(Field::getName)
                    .collect(Collectors.toList());
    
            fieldList.addAll(Stream.of(voClass.getSuperclass().getDeclaredFields())
                    .map(Field::getName)
                    .collect(Collectors.toList()));
    
            for (Map.Entry<String, Object> entry : map.entrySet())
                if (!StringUtils.isEmpty(String.valueOf(entry.getValue())))
                    if (fieldList.contains(entry.getKey()))
                        beanWrapper.setPropertyValue(entry.getKey(), entry.getValue());
            return obj;
        }

    参考资料:

    1、java反射以获取父类属性的值
    https://blog.csdn.net/Mingyueyixi/article/details/51164061

    2、 Java-Reflection反射-获取包括父类在内的所有字段
    https://blog.csdn.net/qq_32452623/article/details/54025185


    展开全文
  • 获取父类方法及属性前言1、 clazz.getFields()获取成员变量2、 clazz.getDeclaredFields()获取当前类的所有属性3、 clazz.getMethods()获取当前对象及父类对象的所有公共方法4、 clazz.getDeclaredMethods()获取...
  • java反射获取父类和本类属性并赋值

    千次阅读 2019-03-30 21:01:07
    // 得到property对应的setter方法 Method setter = property.getWriteMethod(); setter.invoke(t, value); } } } catch (Exception e) { System.out.println("transMap2Bean Error " + e); } return t;
  • java反射机制操作父类的所有属性和方法
  • 备忘一下,拿Field的时候要用getClass().getSuperclass()来获取Field: Field f= getClass().getSuperclass().getDeclaredField("sqlSessionFactory"); f.setAccessible(true); ssf= (SqlSessionFactory) f.get(this...
  • NULL 博文链接:https://bijian1013.iteye.com/blog/2299135
  • * 获取父类中的所有属性和方法 工具类 * @author zhangwenchao * */ public class SuperClassReflectionUtils { /** * 循环向上转型, 获取对象的 DeclaredMethod * @param object : 子类对象 * @param ...
  • 调用私有方法 public class PrivateMethod { private String sayHello(String name) { return "hello "+name; } } 测试 package com.java.test; import java.lang.reflect.Method; public class ...
  • java反射机制获取父类属性

    万次阅读 2019-01-10 10:41:27
    首先查看反射机制如何获取类的方法的: Class clazz = object.getClasss(); clazz.getDeclareFields(); Calzz.getFields(); 通过getClass()方法获取类的定义信息,通过定义信息再调用getFields()方法获取类的...
  • 今天由于业务需要,看一段数据库中的表转化成用户可以看懂的数据,也就是把一些字段比如Date用ms存的,转化为'yyyy-MM-dd'这种格式,但是由于字段太多,所以利用Java反射机制自带的BeanUtils相关的方法来进行转化(要求两...
  • 俗话说:反射反射,程序猿的快乐。特意转载这篇文章,当做学习笔记 原文链接 Java代码  package com.syh.jdbc.reflection_super;    /**   * 父类   * @author syh   *   */    public class ...
  • 反射获取父类私有字段

    千次阅读 2019-03-19 16:08:15
    @Test public void myTest ( ) ... ...//打印子类和父类所有字段,注意:JsonUtil改成你自己的json解析工具 } catch ( Exception e ) { e . printStackTrace ( ) ; } }
  • JAVA中通过反射机制获取父类和接口 获取父类:.getSuperclass() 获取接口:.getInterfaces() public class SuperTest01 { public static void main(String[] args) throws Exception{ Class c = Class.forName(...
  • import org.springframework.util.ReflectionUtils;...import java.lang.reflect.Field; import java.util.*; public static void setValueByPropName(String tar, Object o, Object val, Class clazz) { ...
  • * 反射 options并修改样式 picker */ public class MyOptionsPickerBuilder extends OptionsPickerBuilder { //Required public MyOptionsPickerBuilder(Context context, OnOptionsSelectListener listener) { ...
  • 定义两个类Person是父类,Student是子类 public class Person { private String username;...通过反射分别获取父类和子类的属性 public class ReflectTest { public static void main(String
  • 通过反射获取父类私有成员变量

    千次阅读 2019-09-19 10:19:19
    import jdk.nashorn.internal.ir.Expression;...import java.lang.reflect.Field; import java.util.Arrays; import java.util.stream.Stream; class A{ private int i=0; private String str="jvnqiwnh1"; ...
  • NULL 博文链接:https://1017401036.iteye.com/blog/2343706
  • java反射获取子类和父类所有字段

    千次阅读 2020-08-18 13:49:23
    * 获取本类及其父类的属性的方法 * @param clazz 当前类对象 * @return 字段数组 */ private static Field[] getAllFields(Class<?> clazz) { List<Field> fieldList = new ArrayList<>(); ...
  • Java 反射机制 父类私有字段处理

    千次阅读 2018-03-25 13:04:39
    1.获取class的方法object.getClass()获取这个实例所属的class对象type.class通过类型获取所属class对象Class.forName()通过类路径获取class对象Double.TYPE对应基本类型double.class,所有基本类型均可通过其包装类型...
  • 通过反射我们可以获取到一个类的属性和方法,但获取父类的private的属性却不可以直接获取,需要递归调用superclass来获取属性 SuperClass.java public class SuperClass { private String name; private String ...
  • 为什么80%的码农都做不了架构师?>>> ...
  • getMethods()和getDeclaredMethods()区别 虽然是老生常谈了,但是...getDeclaredMethods():能够获取类本身的所有方法,包括private方法,实现的接口方法,但是不能获取父类继承的方法。 因此getDeclaredMethods()...
  • 说明: 1、getFields():获得某个类的所有的公共(public)的字段,包括父类中的字段。 2、getDeclaredFields():获得某个类的所有声明的字段,即包括public、private和proteced...获取父类所有字段: 要获取到当前类
  • Java中,任何的程序类都一定会有父类,在Class类中就可以通过如下方法来取得父类或者实现的父接口: 取得类的包名称: public Package getPackage() eg: interface IFruit {} interface IMessage{} class CLS ...
  • 在做网站开发的时候我们都会写一个控制器,控制器的作用就是接收客户端的请求,有时候为了控制访问入口的唯一性,方便我们监控用户访问的数据;...1.定义一个抽象类作为所有控制器的父类 package thread; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 72,681
精华内容 29,072
关键字:

java反射获取父类方法

java 订阅