JavaBean字段防止非空赋值

前言

工具类制作起因,有时候项目中出一点点错误,在所难免,经常,有些地方的字段是String,但是到了其他地方是Long,Date,Interger,BigDecimal,这个时候每次都需要判断下是否为空,否则就会在New BigDecimal(string)等中转化失败,报空指针。 如果字段很多,简直太恶心了。

这里日期是最恶心心,日期分为Date类型和String类型 转化为Date


举例

 if(string!=null){
   
    date.setBigValue(new BigDecimal(string));
  }
        

1、JavaBean制作

1.1、初始JavaBean User


public class User {
   

 /**
     * 如果属性类型为基本数据类型,则会有默认值
     * 影响正确判断,请特别注意
     */
//  private int age;

    private Integer age;


    private String name;

    private String gender;

    private BigDecimal bigDecimal;

    private Date date ;

    private Long longvalue;
    
    private String dateStr ; //注意这里是String类型的日期 例如 2018-12-09 00:00:00

    get set……
    

1.2、被赋值的JavaBean


/**
 * 作者 :HealerJean
 * 日期 :2018/12/13  上午11:03.
 * 类描述:
 */
public class UserNow {
   


    private String nameNow;

    private String genderNow;

    private Integer ageNow;

    private BigDecimal bigDecimalNow ;

    private Date dateNow ;

    private Long longvalueNow;

    private Date dateStrNow ; //注意这里是Date类型

get set……

2、利用反射实现工具类

需要注意的是,下面的日期,在我们通过反射获取到值的时候,它打印出来的是英文日期串,我们需要对他进行一个转化


package com.hlj.IgnoreNullBean;

import org.junit.platform.commons.util.StringUtils;
import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

/**
 * 作者 :HealerJean
 * 日期 :2018/12/13  上午10:55.
 * 类描述 防止非空字段,在类似于 new BigDecimal(string))中进行报错
 */
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JavaBean赋值方法有以下几种: 1. 构造方法赋值:在JavaBean的构造方法中传入参数,通过构造方法来给JavaBean的属性赋值。 2. Setter方法赋值JavaBean中的Setter方法可以通过传入参数来给JavaBean的属性赋值。 3. 反射赋值:通过Java的反射机制,可以动态地给JavaBean的属性赋值。 4. 注解赋值:通过Java的注解机制,可以在JavaBean的属性上添加注解,然后通过解析注解来给JavaBean的属性赋值。 5. 数据绑定赋值:通过数据绑定框架,可以将JavaBean的属性与界面上的控件进行绑定,从而实现自动赋值。 ### 回答2: JavaBean赋值方法一般包括以下几种: 1. 无参构造方法赋值JavaBean类中通过无参构造方法来创建对象,并使用setter方法逐个赋值。例如: ```java Person person = new Person(); person.setName("张三"); person.setAge(20); ``` 2. 构造方法赋值JavaBean类中可以定义带参数的构造方法,在创建对象时直接传入参数赋值。例如: ```java Person person = new Person("张三", 20); ``` 3. 使用构造方法赋值JavaBean类中可以使用其他类的对象作为参数,通过调用其他类对象的方法获取赋值。例如: ```java Date date = new Date(); // 获取当前日期 Person person = new Person("张三", date); ``` 4. 批量赋值方法:JavaBean类中可以定义一个接受参数的方法,通过传入键值对的形式来批量赋值。例如: ```java Person person = new Person(); person.setPropertyValues(properties); // properties为包含属性名与属性值的键值对集合 ``` 5. 使用反射赋值JavaBean类中可以通过反射机制来获取类的字段,并通过setter方法来赋值。例如: ```java Person person = new Person(); Class<?> clazz = person.getClass(); // 获取类的Class对象 Field field = clazz.getDeclaredField("name"); // 获取指定字段名 Method method = clazz.getMethod("setName", String.class); // 获取setter方法 method.invoke(person, "张三"); // 执行setter方法赋值 ``` 以上是常见的一些JavaBean赋值方法,可以根据需要选择相应的方式来进行赋值。 ### 回答3: JavaBean赋值方法主要有以下几种: 1. 构造方法赋值:通过在JavaBean类中定义与属性对应的构造方法,将属性值作为参数传入构造方法中并赋值给属性。例如: ```java public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } } ``` 2. set方法赋值:通过在JavaBean类中定义set方法(设值方法),通过调用该方法来给属性赋值。例如: ```java public class Person { private String name; private int age; public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } } ``` 3. 使用反射机制赋值:通过使用Java的反射机制,可以动态地给属性赋值。通过获取JavaBean类的Class对象,然后利用Class对象的方法动态赋值。例如: ```java public class Person { private String name; private int age; public void setValue(String fieldName, Object value) throws Exception { Field field = this.getClass().getDeclaredField(fieldName); field.setAccessible(true); field.set(this, value); } } ``` 上述方法是常见的给JavaBean属性赋值的方式,根据具体的需求,可以选择适合的赋值方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值