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

java 获取实体类对象属性值的方法的更多相关文章

  1. C# 反射(GetType) 获取动态Json对象属性值的方法

    之前在开发一个程序,希望能够通过属性名称读取出属性值,但是由于那时候不熟悉反射,所以并没有找到合适的方法,做了不少的重复性工作啊! 然后今天我再上网找了找,被我找到了,跟大家分享一下. 其实原理并不复 ...

  2. java利用反射动态获取实体类的属性值

    直接贴代码吧,有需要的话,可以根据自己的需要修改部分代码: public BigDecimal getByAttributeName(ThmdGwqriR thmdGwqriR, String att ...

  3. java 中利用反射机制获取和设置实体类的属性值

    摘要: 在java编程中,我们经常不知道传入自己方法中的实体类中到底有哪些方法,或者,我们需要根据用户传入的不同的属性来给对象设置不同的属性值,那么,java自带的反射机制可以很方便的达到这种目的,同 ...

  4. java反射获取和设置实体类的属性值 递归所有父类

    最近做一个通用数据操作接口,需要动态获取和设置实体类的属性值,为了通用实体做了多重继承,开始网上找到代码都不支持父类操作,只能自己搞一个工具类了,此工具类可以设置和获取所有父类属性,代码贴下面拿走不谢 ...

  5. C#通过属性名字符串获取、设置对象属性值

    之前理工项目从这个博客找到了相对应的方法:C#通过属性名字符串获取.设置对象属性值 https://www.cnblogs.com/willingtolove/p/12198871.html

  6. java遍历实体类的属性和数据类型以及属性值

    遍历实体类的树形和数据类型一级属性值 /** * 遍历实体类的属性和数据类型以及属性值 * @param model * @throws NoSuchMethodException * @throws ...

  7. 【转】java遍历实体类的属性和数据类型以及属性值

    和同学接了个外包的活,由于项目中很多地方要用到poi导出excel,而每次导出都要写很多相同的代码,因为poi的cell.setCellValue();每次设置的都是不同实体bean的属性值,导致代码 ...

  8. java后台实体类设置默认值

    private String orderPrice;//定义类的属性 /* * get set方法 * String.trim() 返回字符串的副本,忽略前导空白和尾部空白. */ public St ...

  9. solr搜索结果转实体类对象的两种方法

    问题:就是把从solr搜索出来的结果转成我们想要的实体类对象,很常用的情景. 1.使用@Field注解 @Field这个注解放到实体类的属性[字段]中,例如下面 public class User{ ...

随机推荐

  1. mac下U盘装机系统的制作(命令行)

    1,不插入U盘和插入U盘分别命令检测硬盘,确定要制作的U盘号:diskutil list 2,卸载usb盘,不推出,diskutil umountDisk /dev/disk1 3,将dmg写入U盘, ...

  2. js打印方法总结

    前段时间做web项目用到了页面打印,在网上找了些资料,自己也试了很多方法,将这些方案列出下: 1.window.print()方法打印,所有主要浏览器都支持 print() 方法 这个方法很实用,只需 ...

  3. PHP extract() 函数

    PHP extract() 函数从数组中把变量导入到当前的符号表中. 对于数组中的每个元素,键名用于变量名,键值用于变量值. 第二个参数 type 用于指定当某个变量已经存在,而数组中又有同名元素时, ...

  4. Android Listener 监听的几种写法

    Android中,View的Listener方法,在是否使用匿名类匿名对象时,有各种不同的写法. OnClickListener和其他Listener方法一样,都是View类的接口,重载实现后就能使用 ...

  5. Http权威指南(二)---读书笔记

    Chart4 ====连接管理==== 一.TCP连接 1.  Http和Https的网络协议栈: 2.  Http在TCP/IP传输中的位置:   3.  Http怎么利用TCP传输: 二.Http ...

  6. jQuery对象与DOM对象之间的转换

    刚开始学习jQuery,可能一时会分不清楚哪些是jQuery对象,哪些是DOM对象.至于DOM对象不多解释,我们接触的太多了,下面重点介绍一下jQuery,以及两者相互间的转换. 什么是jQuery对 ...

  7. ubuntu默认root密码

    安装完Kubuntu后一直都是用我的用户名bbking登录, 一直没想到root的问题, 以为每次sudo输入的密码就是我的root密码. 刚才为了修改文件夹的所有者,想使用su root切换到roo ...

  8. iOS中的多线程及GCD

    多线程中的一些概念 //任务:代码段  方法  线程就是执行这些任务 //NSThread类 创建线程 执行线程 [NSThread isMainThread]//判断是否是主线程 #import & ...

  9. CSS3详解:transform

    CSS3 transform是什么? transform的含义是:改变,使…变形:转换 CSS3 transform都有哪些常用属性? transform的属性包括:rotate() / skew() ...

  10. c#部分---又见循环。。

    小时候背的诗,现在竟然这样玩. 又是循环,可见其无处不在的特性.就像“春眠不觉晓,处处蚊子咬.”