实体(JavaBean规范)赋值时,抛出异常。
1.2 原因使用基础类型定义属性,当使用null给属性赋值时,抛出异常。
2 Java Beanpackage com.monkey.java_study.common.entity; public class DigitalEntity { private double a; private Double b; public DigitalEntity() { } public double getA() { return a; } public void setA(double a) { this.a = a; } public Double getB() { return b; } public void setB(Double b) { this.b = b; } @Override public String toString() { return "DigitalEntity{" + "a=" + a + ", b=" + b + '}'; } }3 测试 3.1 基础类型
为基础类型赋值null,测试样例如下:
@Test public void basicTypeTest() { DigitalEntity digitalEntity = new DigitalEntity(); Mapmap = new HashMap<>(); map.put("1", null); digitalEntity.setA(map.get("1")); }
测试结果如下,由结果可知,为基础类型赋值null时,直接抛出异常。
为包装类型赋值null,测试样例如下:
@Test public void wrappedTypeTest() { DigitalEntity digitalEntity = new DigitalEntity(); Mapmap = new HashMap<>(); map.put("1", null); digitalEntity.setB(map.get("1")); Double b = digitalEntity.getB(); System.out.println(">>>>>>>>>Double b:" + b); }
测试结果入下,由结果可知,为包装类型赋值null时,不会抛出异常,只是属性值为null,在使用值时,需要做判断。
package com.monkey.java_study.functiontest; import com.monkey.java_study.common.entity.DigitalEntity; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.junit.Test; import java.util.HashMap; import java.util.Map; public class DigitalTest { private static final Logger logger = LogManager.getLogger(DigitalTest.class); @Test public void basicTypeTest() { DigitalEntity digitalEntity = new DigitalEntity(); Map5 小结map = new HashMap<>(); map.put("1", null); digitalEntity.setA(map.get("1")); } @Test public void wrappedTypeTest() { DigitalEntity digitalEntity = new DigitalEntity(); Map map = new HashMap<>(); map.put("1", null); digitalEntity.setB(map.get("1")); Double b = digitalEntity.getB(); System.out.println(">>>>>>>>>Double b:" + b); } }
- 使用JavaBean规范定义实体时,属性使用包装类型;
- 包装类型的数据使用时,特别是数字类型的包装类型,需要判断是否为null。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)