精华内容
下载资源
问答
  • Field常用方法Field获取实体类的属性名和属性值实现步骤输出结果 Field是什么? Field是一个类,位于java.lang.reflect包下。在Java反射中Field类描述的是类的属性信息,功能包括: 获取当前对象的成员变量的类型 对...

    Field是什么?

    Field是一个类,位于java.lang.reflect包下。在Java反射中Field类描述的是类的属性信息,功能包括:

    • 获取当前对象的成员变量的类型
    • 对成员变量重新设值

    Field常用方法

    getType(): 获取属性声明时类型对象(返回class对象)

    getGenericType() : 返回属性声的Type类型

    getName() : 获取属性声明时名字

    getAnnotations() : 获得这个属性上所有的注释

    getModifiers() : 获取属性的修饰

    isEnumConstant() : 判断这个属性是否是枚举类

    isSynthetic() : 判断这个属性是否是 复合类

    get(Object obj) : 取得obj对象这个Field上的值

    set(Object obj, Object value) : 向obj对象的这个Field设置新值value

    Field获取实体类的属性名和属性值

    实现步骤

    1. 获取实体类 返回的是一个数组 数组的数据就是实体类中的字段
    2. 添加setAccessible()因为的字段是用private修饰的
    3. 输出属性名和属性值
     User user = new User();
     //获取实体类 返回的是一个数组 数组的数据就是实体类中的字段
     Field[] fields = user.getClass().getDeclaredFields();
        for (int i = 0; i < fields.length; i++) {
          //有的字段是用private修饰的 将他设置为可读
          fields[i].setAccessible(true);
          try {
            // 输出属性名和属性值
            System.out.println("属性名"+fields[i].getName()+"-----属性值"+fields[i].get(user));
            catch (IllegalAccessException e) {
               e.printStackTrace();
            }
        }
    

    输出结果

    在这里插入图片描述

    梦想也许在今天无法实现,但重要的是,它在你心里。重要的是,你一直在努力,加油!!!

    展开全文
  • java中我们要获得实体类对象的属性,一般情况是将实体类中的属性私有化,然后再对外提供get()与set()方法,然后再获取实体类对象的属性的时候先把对象new出来,再用变量.get()的方法得到,如果想给某个属性赋值...

    在java中我们要获得实体类对象的属性,一般情况是将实体类中的属性私有化,然后再对外提供get()与set()方法,然后再获取实体类对象的属性的时候先把对象new出来,再用变量名.get()的方法得到,如果想给某个属性赋值则用变量名.set()的方法赋值。

    第一步,生成一个属性类:

    public class Student {

    //编号

    private int id;

    //姓名

    private String name;

    //年龄

    private int age;

    /**

    * 有参构造,可以通过生成一个Student类型的对象的时候直接赋值

    * @param id

    * @param name

    * @param age

    */

    public Student(int id, String name, int age) {

    this.id = id;

    this.name = name;

    this.age = age;

    }

    /**

    * 无参构造

    */

    public Student(){

    }

    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;

    }

    public int getAge() {

    return age;

    }

    public void setAge(int age) {

    this.age = age;

    }

    }

    第二步:在其他类里通过生成一个Student类的对象来调用:

    //通过生成一个对象并用set方法赋值,get得到

    Student student = new Student();

    student.setId(1);

    student.setName("");

    student.setAge(18);

    //通过有参构造来赋值

    Student student1 = new Student(student.getId(),student.getName(),student.getAge());

    这里首先是给变量student赋值,然后又通过set方法拿到student的内部的各个属性值又通过有参构造的方式赋值给了student1。

    总结起来就是这样给实体类对象里的属性赋值或者得到实体类对象里的属性值。希望对大家有所帮助。

    另附一段没有单设属性类直接在一个类中赋值与获取的代码,刚入门的朋友可以看看,自己感觉有点麻烦不如单设属性类方便,大家自我斟酌吧。

    public class TestInstance {

    public class Product{

    public String name;

    public string age;

    public int count;

    public int number;

    }

    public static void main(String[] args) throws NoSuchMethodException,

    SecurityException, IllegalAccessException,

    IllegalArgumentException, InvocationTargetException {

    // TODO Auto-generated method stub

    Product model = new Product("sss", "11", 3, 4);

    Field[] field = model.getClass().getDeclaredFields(); // 获取实体类的所有属性,返回Field数组

    // 遍历所有属性

    for (int j = 0; j < field.length; j++) {

    String name = field[j].getName();

    name = name.substring(0, 1).toUpperCase() + name.substring(1); // 将属性的首字符大写,方便构造get,set方法

    String type = field[j].getGenericType().toString(); // 获取属性的类型

    if (type.equals("class java.lang.String")) { // 如果type是类类型,则前面包含"class ",后面跟类名

    Method m = model.getClass().getMethod("get" + name);

    String value = (String) m.invoke(model); // 调用getter方法获取属性值

    if (value == null) {

    m = model.getClass().getMethod("set" + name, String.class);

    m.invoke(model, "");

    }else {

    System.out.println(value);

    }

    }

    if (type.equals("class java.lang.Integer")||type.equals("int")) {

    Method m = model.getClass().getMethod("get" + name);

    Integer value = (Integer) m.invoke(model);

    if (value == null) {

    m = model.getClass().getMethod("set" + name, Integer.class);

    m.invoke(model, 0);

    }

    else {

    System.out.println(value);

    }

    }

    if (type.equals("class java.lang.Boolean")||type.equals("boolean")) {

    Method m = model.getClass().getMethod("get" + name);

    Boolean value = (Boolean) m.invoke(model);

    if (value == null) {

    m = model.getClass().getMethod("set" + name, Boolean.class);

    m.invoke(model, false);

    }

    else {

    System.out.println(value);

    }

    }

    if (type.equals("class java.util.Date")) {

    Method m = model.getClass().getMethod("get" + name);

    Date value = (Date) m.invoke(model);

    if (value == null) {

    m = model.getClass().getMethod("set" + name, Date.class);

    m.invoke(model, new Date());

    }

    else {

    System.out.println(value);

    }

    }

    if (type.equals("double")) {

    Method m = model.getClass().getMethod("get" + name);

    double value = (double) m.invoke(model);

    System.out.println(value);

    }

    }

    }

    }

    展开全文
  • java中我们要获得实体类对象的属性,一般情况是将实体类中的属性私有化,然后再对外提供get()与set()方法,然后再获取实体类对象的属性的时候先把对象new出来,再用变量.get()的方法得到,如果想给某个属性赋值...

    在java中我们要获得实体类对象的属性,一般情况是将实体类中的属性私有化,然后再对外提供get()与set()方法,然后再获取实体类对象的属性的时候先把对象new出来,再用变量名.get()的方法得到,如果想给某个属性赋值则用变量名.set()的方法赋值。

    第一步,生成一个属性类:

    public class Student {

    //编号

    private int id;

    //姓名

    private String name;

    //年龄

    private int age;

    /**

    * 有参构造,可以通过生成一个Student类型的对象的时候直接赋值

    * @param id

    * @param name

    * @param age

    */

    public Student(int id, String name, int age) {

    this.id = id;

    this.name = name;

    this.age = age;

    }

    /**

    * 无参构造

    */

    public Student(){

    }

    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;

    }

    public int getAge() {

    return age;

    }

    public void setAge(int age) {

    this.age = age;

    }

    }

    第二步:在其他类里通过生成一个Student类的对象来调用:

    //通过生成一个对象并用set方法赋值,get得到

    Student student = new Student();

    student.setId(1);

    student.setName("");

    student.setAge(18);

    //通过有参构造来赋值

    Student student1 = new Student(student.getId(),student.getName(),student.getAge());

    这里首先是给变量student赋值,然后又通过set方法拿到student的内部的各个属性值又通过有参构造的方式赋值给了student1。

    总结起来就是这样给实体类对象里的属性赋值或者得到实体类对象里的属性值。希望对大家有所帮助。

    另附一段没有单设属性类直接在一个类中赋值与获取的代码,刚入门的朋友可以看看,自己感觉有点麻烦不如单设属性类方便,大家自我斟酌吧。

    public class TestInstance {

    public class Product{

    public String name;

    public string age;

    public int count;

    public int number;

    }

    public static void main(String[] args) throws NoSuchMethodException,

    SecurityException, IllegalAccessException,

    IllegalArgumentException, InvocationTargetException {

    // TODO Auto-generated method stub

    Product model = new Product("sss", "11", 3, 4);

    Field[] field = model.getClass().getDeclaredFields(); // 获取实体类的所有属性,返回Field数组

    // 遍历所有属性

    for (int j = 0; j < field.length; j++) {

    String name = field[j].getName();

    name = name.substring(0, 1).toUpperCase() + name.substring(1); // 将属性的首字符大写,方便构造get,set方法

    String type = field[j].getGenericType().toString(); // 获取属性的类型

    if (type.equals("class java.lang.String")) { // 如果type是类类型,则前面包含"class ",后面跟类名

    Method m = model.getClass().getMethod("get" + name);

    String value = (String) m.invoke(model); // 调用getter方法获取属性值

    if (value == null) {

    m = model.getClass().getMethod("set" + name, String.class);

    m.invoke(model, "");

    }else {

    System.out.println(value);

    }

    }

    if (type.equals("class java.lang.Integer")||type.equals("int")) {

    Method m = model.getClass().getMethod("get" + name);

    Integer value = (Integer) m.invoke(model);

    if (value == null) {

    m = model.getClass().getMethod("set" + name, Integer.class);

    m.invoke(model, 0);

    }

    else {

    System.out.println(value);

    }

    }

    if (type.equals("class java.lang.Boolean")||type.equals("boolean")) {

    Method m = model.getClass().getMethod("get" + name);

    Boolean value = (Boolean) m.invoke(model);

    if (value == null) {

    m = model.getClass().getMethod("set" + name, Boolean.class);

    m.invoke(model, false);

    }

    else {

    System.out.println(value);

    }

    }

    if (type.equals("class java.util.Date")) {

    Method m = model.getClass().getMethod("get" + name);

    Date value = (Date) m.invoke(model);

    if (value == null) {

    m = model.getClass().getMethod("set" + name, Date.class);

    m.invoke(model, new Date());

    }

    else {

    System.out.println(value);

    }

    }

    if (type.equals("double")) {

    Method m = model.getClass().getMethod("get" + name);

    double value = (double) m.invoke(model);

    System.out.println(value);

    }

    }

    }

    }

    展开全文
  •  在java中我们要获得实体类对象的属性,一般情况是将实体类中的属性私有化,然后再对外提供get()与set()方法,然后再获取实体类对象的属性的时候先把对象new出来,再用变量.get()的方法得到,如果想给某个属性...

      在java中我们要获得实体类对象的属性,一般情况是将实体类中的属性私有化,然后再对外提供get()与set()方法,然后再获取实体类对象的属性的时候先把对象new出来,再用变量名.get()的方法得到,如果想给某个属性赋值则用变量名.set()的方法赋值。

     

    第一步,生成一个属性类:

    public class Student {
    //编号
    private int id;
    //姓名
    private String name;
    //年龄
    private int age;

    /**
    * 有参构造,可以通过生成一个Student类型的对象的时候直接赋值
    * @param id
    * @param name
    * @param age
    */
    public Student(int id, String name, int age) {
    this.id = id;
    this.name = name;
    this.age = age;
    }

    /**
    * 无参构造
    */
    public Student(){

    }

    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;
    }

    public int getAge() {
    return age;
    }

    public void setAge(int age) {
    this.age = age;
    }
    }

    第二步:在其他类里通过生成一个Student类的对象来调用:

    //通过生成一个对象并用set方法赋值,get得到
    Student student = new Student();
    student.setId(1);
    student.setName("</nbsp>");
    student.setAge(18);
    //通过有参构造来赋值
    Student student1 = new Student(student.getId(),student.getName(),student.getAge());

      这里首先是给变量student赋值,然后又通过set方法拿到student的内部的各个属性值又通过有参构造的方式赋值给了student1。
    总结起来就是这样给实体类对象里的属性赋值或者得到实体类对象里的属性值。希望对大家有所帮助。

    另附一段没有单设属性类直接在一个类中赋值与获取的代码,刚入门的朋友可以看看,自己感觉有点麻烦不如单设属性类方便,大家自我斟酌吧。



    public class TestInstance {
        public class Product{

              public String name;

          public string age;

        public int count;

        public int number;

        }
        public static void main(String[] args) throws NoSuchMethodException,
                SecurityException, IllegalAccessException,
                IllegalArgumentException, InvocationTargetException {
            // TODO Auto-generated method stub
            Product model = new Product("sss", "11", 3, 4);
            Field[] field = model.getClass().getDeclaredFields(); // 获取实体类的所有属性,返回Field数组
            // 遍历所有属性
            for (int j = 0; j < field.length; j++) {
                String name = field[j].getName();
                name = name.substring(0, 1).toUpperCase() + name.substring(1); // 将属性的首字符大写,方便构造get,set方法
                String type = field[j].getGenericType().toString(); // 获取属性的类型
                if (type.equals("class java.lang.String")) { // 如果type是类类型,则前面包含"class ",后面跟类名
                    Method m = model.getClass().getMethod("get" + name);
                    String value = (String) m.invoke(model); // 调用getter方法获取属性值
                    if (value == null) {
                        m = model.getClass().getMethod("set" + name, String.class);
                        m.invoke(model, "");
                    }else {
                        System.out.println(value);
                    }
                }
                if (type.equals("class java.lang.Integer")||type.equals("int")) {
                    Method m = model.getClass().getMethod("get" + name);
                    Integer value = (Integer) m.invoke(model);
                    if (value == null) {
                        m = model.getClass().getMethod("set" + name, Integer.class);
                        m.invoke(model, 0);
                    }
                    else {
                        System.out.println(value);
                    }
                }
                if (type.equals("class java.lang.Boolean")||type.equals("boolean")) {
                    Method m = model.getClass().getMethod("get" + name);
                    Boolean value = (Boolean) m.invoke(model);
                    if (value == null) {
                        m = model.getClass().getMethod("set" + name, Boolean.class);
                        m.invoke(model, false);
                    }
                    else {
                        System.out.println(value);
                    }
                }
                if (type.equals("class java.util.Date")) {
                    Method m = model.getClass().getMethod("get" + name);
                    Date value = (Date) m.invoke(model);
                    if (value == null) {
                        m = model.getClass().getMethod("set" + name, Date.class);
                        m.invoke(model, new Date());
                    }
                    else {
                        System.out.println(value);
                    }
                }
                if (type.equals("double")) {
                    Method m = model.getClass().getMethod("get" + name);
                    double value = (double) m.invoke(model);
                    System.out.println(value);
                }
            }
        }
    }

    posted on 2016-07-19 15:44 <&nbsp/> 阅读(...) 评论(...) 编辑 收藏

    转载于:https://www.cnblogs.com/zhangdiIT/p/5685115.html

    展开全文
  • Apache POI是Apache软件基金会开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写功能。 结构: HSSF - 提供读写Microsoft Excel格式档案功能。 XSSF - 提供读写Microsoft Excel ...
  • import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.... /** * 获取实体类型的属性名和类型 * * @author kou */ public ...
  • 虽然Entity对象和数据表一般是一比一按照驼峰命名法和下划线命名法标准转换来映射的,但是简单的将Entity对象中的属性转为字段是一个有风险的操作有没有哪里记录了实体类属性和数据表字段的映射关系呢?...
  • import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect..../*** 获取实体类型的属性名和类型* @param model 为实体类* @author kou 为传入参数*/public...
  • Field[] field = model....// 获取实体类的所有属性,返回Field数组try{for(intj =0; j < field.length; j++) {// 遍历所有属性String name = field[j].getName();// 获取属性的名字name = name.substring(0,1).t...
  • java根据实体类获取注释和field属性值生成js DataTable   需求: 把oss-service层拿到的实体,提取出注释和filed 把实体类丢在工具类的相同目录即可,与文件名称无关,模糊读取   效果: 生成的js ...
  • import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect... /** * 获取实体类型的属性名和类型 * @param model 为实体类 * @author kou 为传入参数 */p...
  • 需求今天遇到一个需求。需要从几个对象的集合中取出对象的...用反射当然得有 参数Class<?> 最后还得有第三个参数就是需要获取的属性名。出参出参比较容易,就搞个String好了实现public String getStringAbel(List<?> o,
  • Field[] field = model.... //获取实体类的所有属性,返回Field数组try{for (int j = 0; j < field.length; j++) { //遍历所有属性String name = field[j].getName(); //获取属性的名字name= name.substring(0, 1...
  • import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; ... * 获取实体类型的属性名和类型 * @param model 为实体类 * @
  • 最近在写数据增删改查的时候,由于表的字段较多,懒得去一个一个get,就写了一个通用方法 ... //获取实体类的所有属性,返回Field数组 for (int j = 0; j < field.length; j++) { //遍历所有属性 String...
  • 需求今天遇到一个需求。需要从几个对象的集合中取出对象的某些属性。... 最后还得有第三个参数就是需要获取的属性名。出参出参比较容易,就搞个String好了实现public static String getStringAbel(L...
  • import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect..../*** 获取实体类型的属性名和类型* @param model 为实体类* @author kou 为传入参数*/public...
  • 前言在我们开发过程中常常有一个需求,就是要知道实体类中Getter方法对应的属性名称(Field Name),例如实体类属性到数据库字段的映射,我们常常是硬编码指定 属性名,这种硬编码有两个缺点。1、编码效率低:因为要硬...
  • public class InitializeProperty {public static void setEmpty(Object obj) {try {// 获取实体类的所有属性,返回Field数组Field[] field = obj.getClass().getDeclaredFields();// 获取属性的名字String[] model...
  • import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method;... * 获取实体类型的属性名和类型  *  * @author kou  */ publi
  • //根据字段获取其对应值,javaName属性名,obj实体类 public String getValByJavaName(String javaName,Object obj){ String firstLetter = javaName.substring(0, 1).toUpperCase(); String getMethodName =...
  • 1 public static void getObjectValue(Object object) throwsException {2 //我们项目所有实体类都继承BaseDomain (所有实体基类:该类只是串行化一下)3 //不需要自己去掉即可4 if (object != null && ...
  • Field[] field = model.... // 获取实体类的所有属性,返回Field数组try {for (int j = 0; j < field.length; j++) { // 遍历所有属性String name = field[j].getName(); // 获取属性的名字name = name.substring...
  • 方式一(实体类):1234567//java中遍历实体类获取属性名和属性值 public static void testReflect(Object model) throws Exception{ for (Field field : model.getClass().getDeclaredFields()) { field.....
  • 1 public static void getObjectValue(Object object) throwsException {2 //我们项目所有实体类都继承BaseDomain (所有实体基类:该类只是串行化一下)3 //不需要自己去掉即可4 if (object != null && ...
  • 有另个List动态存放实体类的属性名,如果这个集合中不存在List的属性,那么就需要将所有实体类的这个不存在的属性设置成其他值或者null。 1、思路 参考 Java 根据字段名称获取字段值, 根据字段名称设置字段值 java...
  • 对应的实体类的属性为 分别为d1 d2 一直到第31号。前端传递到后台的是d1 d2 d3等实体类对应的属性和要设置的状态的字段。 怎样将这些属性根据名字进行更新。 注: 博客:...

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 228
精华内容 91
关键字:

java获取实体类的属性名

java 订阅