精华内容
下载资源
问答
  • getFields():获得某个类所有的公共(public)的字段,包括父类中的字段。 getDeclaredFields():获得某个类所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段。 getDeclaredMethod:...

    getFields():获得某个类的所有的公共(public)的字段,包括父类中的字段。
    getDeclaredFields():获得某个类的所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段。
    getDeclaredMethod:获取当前类的所有声明的方法,包括public、protected和private修饰的方法。需要注意的是,这些方法一定是在当前类中声明的,从父类中继承的不算,实现接口的方法由于有声明所以包括在内。
    getMethod:获取当前类和父类的所有public的方法。这里的父类,指的是继承层次中的所有父类。比如说,A继承B,B继承C,那么B和C都属于A的父类。
    **getDeclaredConstructors()**的返回所有类型的构造器,包括public和非public
    **getConstructors()**只返回public。

    展开全文
  • 获取类字段的方法

    2019-08-29 17:34:21
    获取类的字段 关于获取类的字段有两种方式:getFields()和...getDeclaredFields():获得某个类所有声明的字段(public、private和proteced),但是不包括父类的字段。 field.getName():获取字段名称,返回Stri...

    获取类的字段


    关于获取类的字段有两种方式:getFields()和getDeclaredFields()。(反射原理)

    getFields():获得某个类的 public 的字段,包括父类中的字段。
    getDeclaredFields():获得某个类的所有声明的字段(public、private和proteced),但是不包括父类的字段。
    field.getName():获取字段名称,返回String
    field.getType():获取字段的类型,返回class

    使用格式:
    Field [ ] fields = 类名 . class . getDeclaredFields();

    	List<Map<String, Object>> taskList = new ArrayList<Map<String,Object>>();
    	Field[] fields = Task.class.getDeclaredFields();//获取Task类的所有字段
    	for (Field field : fields) {//循环遍历
    		Map<String, Object> taskMap = new HashMap<String, Object>();//每次循环创建一次都要map对象,这样以防map传入list的所有结果被最后一次循环的map集合给覆盖
    		if(field.getName().equals("id")){
    			taskMap.put("name", field.getName() );
    			taskMap.put("tname", "任务id" );
    			taskMap.put("state",field.getType());
    			taskList.add(taskMap);
    		}else if(field.getName().equals("taskType")){
    			taskMap.put("name", field.getName() );
    			taskMap.put("tname", "任务类型" );
    			taskMap.put("state", field.getType());
    			taskList.add(taskMap);
    		}else if(field.getName().equals("memberNo")){
    		 	taskMap.put("name", field.getName() );
    		 	taskMap.put("tname", "任务人数" );
    			taskMap.put("state",field.getType);
    			taskList.add(taskMap);
    		}			 
    	}
    

    结果:
    [ {
    “name”: “id”,
    “name”: “任务id”,
    “state”: “String”
    },
    {
    “name”: “taskType”,
    “name”: “任务类型”,
    “state”: “String”
    },
    {
    “name”: “memberNo”,
    “name”: “任务人数”,
    “state”: “int”
    } ]

    展开全文
  • getFields():获得某个类所有的公共(public)的字段,包括父类中的字段。 getDeclaredFields():获得某个类所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段。 当我们想要获取到...

    在获取类的属性的时候,有两种方式,getFields()getDeclaredFields()。这两者的区别如下:

    • getFields():获得某个类的所有的公共(public)的字段,包括父类中的字段。
    • getDeclaredFields():获得某个类的所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段。

    当我们想要获取到父类的属性,那么只能自己来实现,曾经写过一个方法,用来获取类的所有声明字段,最近有同事有碰到这个问题,便又把它拿出来了,顺便分享下,其实就是一个递归逻辑

    具体编码如下:

    /**
     * 获取类所有声明的字段,即包括public、private和proteced,以及父类的字段属性
     * 静态内部类适用(不适用于非静态内部类)包括hutool 会产生this$0
     * @param c
     * @return
     */
    public static Field[] getAllFields(Class<?> c){
        Assert.notNull(c);
        Field[] fields= null;
        // 获取父类,判断是否为实体类
        if (c.getSuperclass() != Object.class) {
            fields = getAllFields(c.getSuperclass());
        }
        // 获取类中的所有定义字段
        Field[] declaredfields = c.getDeclaredFields();
        return ArrayUtils.addAll(fields, declaredfields);
    }
    

    返回的Field[] 可以对其进行操作,比如修改值等等,有可能会需要设置 field.setAccessible(true);
    需要注意:在对非静态内部类获取时,会产生this$0 ,关于什么是 java中的this$0

    展开全文
  • 1.getFields():获得某个类所有的公共(public)的字段,包括父类中的字段。2.getDeclaredFields():获得某个类所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段。 3.同样类似的...

    1.getFields():获得某个类的所有的公共(public)的字段,包括父类中的字段。 
    2.getDeclaredFields():获得某个类的所有声明的字段,即包括publicprivate    proteced,但是不包括父类的申明字段。

    3.同样类似的还有getConstructors()getDeclaredConstructors()getMethods()getDeclaredMethods(),这两者分别表示获取某个类的方法、构造函数。

    4.获取此类中的所有字段
    Field[] fields = User.class.getDeclaredFields();

    4.1获取字段的名称

    String fieldName = field.getName();

    4.2获取字段的修饰符

    int fieldValue = field.getModifiers();//如:privatestaticfinal

    4.3与某个具体的修饰符进行比较

    Modifier.isStatic(fieldValue)//看此修饰符是否为静态(static)

    4.4获取字段的声明类型

    field.getType()//返回的是一个class

    4.5与某个类型进行比较

    field.getType() == Timestamp.class

    4.6获取指定对象中此字段的值

    Object fieldObject= field.get(user);//user可以看做是从数据库中查找出来的对象

    转载于:https://www.cnblogs.com/TanShan/p/10537994.html

    展开全文
  •  今天跟大家分享的是通过java中的反射,获取pojo所有字段值。 为什么要做这个操作的呢?主要是为了重写实体的toString方法。有人会说,直接重写toString方法,返回字段.toString()的字符串不就行了。这么做...
  • java中使用反射获取pojo(实体)所有字段

    万次阅读 热门讨论 2014-04-19 15:43:54
     今天跟大家分享的是通过java中的反射,获取pojo所有字段值。  为什么要做这个操作的呢?主要是为了重写实体的toString方法。有人会说,直接重写toString方法,返回字段.toString()的字符串不就行了。
  • 今天跟大家分享的是通过java中的反射,获取pojo所有字段值。为什么要做这个操作的呢?主要是为了重写实体的toString方法。有人会说,直接重写toString方法,返回字段.toString()的字符串不就行了。这么做的确...
  • java 反射判断一个中是否含有某个属性字段,因为 java 反射相关的API 中没有提供这个方法,因此需要我们自己判断思路是将所有的属性字段遍历,进行查找,代码如下public boolean hasField(Class c, String ...
  • 今天跟大家分享的是通过java中的反射,获取pojo所有字段值。为什么要做这个操作的呢?主要是为了重写实体的toString方法。有人会说,直接重写toString方法,返回字段.toString()的字符串不就行了。这么做的确...
  • 今天跟大家分享的是通过java中的反射,获取pojo所有字段值。为什么要做这个操作的呢?主要是为了重写实体的toString方法。有人会说,直接重写toString方法,返回字段.toString()的字符串不就行了。这么做的确...
  • 获得某个类所有的公共(public)的字段,包括父类中的字段。 (2)getDeclaredFields() 获得某个类所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段。 二、方法 (1)getMethods() ...
  • 其他的列字段都是数据库里的数据。存在数据库里的数据比较好查询,现在的问题是第一列的日期要如何用php获得。想获取到日期后把每天都存到一个数组里,然后我到视图页面输出出来。是用的CI框架由于官方现在比较推荐...
  • JAVA反射中的getFields()方法和getDeclaredFields ()方法的区别 ...getFields():获得某个类所有的公共(public)的字段,包括父类中的字段。  getDeclaredFields():获得某个类所有声明的字段,即包括publi
  • 要求:前台添加页面的... 思路:循环明细表,把所有的明细表的分类和付款金额放到json数组中,然后循环json数组把分类重复的付款金额相加并合并,然后根据付款金额从高到底排序,那么付款金额最高和第二高的分类...
  • ----获取中的所有的方法 Method []ms = c.getMethods();--------获取以及父类接口中所有公共的方法(public) getModifiers()---------返回int类型值表示该字段的修饰符,即这个方法就是返回一个int型的...
  • 项目中需要获取Cassendra中某个ColumnFamly所有的值,并且缓存起来。感谢Andy童鞋给了我很好的示例 代码背景: 这个ColumnFamly是Super的,SuperColumn是Year,Key是ID,每一个SuperColumn下面存放着不同的数据,...
  • Java反射技术——字段获取

    千次阅读 2018-07-24 14:59:43
    getFields():获得某个类所有的公共(public)的字段,包括父类中的字段。  getDeclaredFields():获得某个类所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段。 ...
  • 实际开发中,遇到一个问题,即在某个对象下的list下,还有list,再获取某个字段所有数据,结构层级如下: public sealed class accountbooks { public DateTime CreateDate { get; set; } public string ...
  • java中std_Java 反射

    2021-03-09 15:28:52
    反射getFields() 获取某个类的所有 public字段getDeclaredFields() 获取某个类所有字段,但是不包括 父类字段其他的也同理我们可以直接访问私有域,或调用私有方法,不过一般情况下最好不要这么做,只有在设计出问题...
  • Java 反射

    2019-09-26 16:37:00
    getDeclaredFields() 获取某个类所有字段,但是不包括 父类字段 其他的也同理 我们可以直接访问私有域,或调用私有方法,不过一般情况下最好不要这么做,只有在设计出问题的情况下做一些临时补救措施,或者debug,...
  • 比如现在有个studentView(继承自student),里面有id,name,age,home,province,school,grade等字段,现在有一个List<student>的集合,现在想知道这些student都分布在哪些province,哪些school,和他们的home都...
  • 解决无法获取实体XXX对应的表名!

    千次阅读 2019-01-30 17:51:17
    出现场景: 出现原因: 使用tkmapper的Example中的方法时,因为实体对应数据库表,前端有些字段,数据库并没有...VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装...
  • 通过Class实例获取字段field信息:getField(name): 获取某个public的field,包括父类getDeclaredField(name): 获取当前的某个field,不包括父类getFields(): 获取所有public的field,包括父类getDeclaredFields():...
  • 发射——访问字段

    2021-03-07 09:42:08
    Field getField(name):根据字段获取某个public的field(包括父类) Field getDeclaredField(name):根据字段名获取当前的某个field(不包括父类) Field[] getFields():获取所有public的field(包括父类) ...
  • 需求:今天做项目的时候,需要获取某个包下面所有里面的@Resources字段的名字以及所注入的接口所对应的路径 要是这文件夹只有几个Action的话,我倒是可以考虑直接手动,可是 有整整70多个Action,如果我手动...
  • Field getField(name):根据字段获取某个public的field(包括父类) Field getDeclaredField(name):根据字段名获取当前的某个field(不包括父类) Field[] getFields():获取所有public的field(包括父类) ...

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 314
精华内容 125
关键字:

获取某个类所有字段