实体类中用基本类型好,还是用包装类型好?

如果您也考虑这个问题欢迎指正我的观点,如果您正在考虑这个问题,欢迎评论一起讨论一下这个问题

刚才又想到了关于module或者实体类的建立的问题,用基本类型(int,long)好主要是,还是用包装类型(Integer,Long)好?

在过去很长时间我都自己冥想这个问题,也问过同事,都没有得到满意的答案,综合最近的学习,再考虑一下这个问题.

首先,分析各自的优缺点

基本类型(int,long)

优点

a.用于计算是效率高(effective java书上讲过的)

b.不会由于常量池引起比较大小错误(例如java integer对象判断两个数字是否相等)

缺点

1.当数据库中查询出结果之后封装结果集时如果返回的值时null时,如果直接赋值给这个基本类型的字段时,会在运行时报出异常,不能将null赋给一个基本类型,而用Integer就不存在这样都的情况

这个情况好像没有合适的避免办法.当没有默认值的情况下

2.当用spring的表单对象时如果页面传来的值是只有字段没有值是如果表单对象中有基本类型的值时会抛出异常.(可能存在,以前遇到过,记不清了)

包装类型(Integer,Long)

优点

1.可以存放null

2.表示一个值(不用于计算,只用于保存值时和int类型一样);

缺点

不适合

首先,一般情况下用包装类型,因为包装类型可以兼容null,

然后总结一个什么情况下用什么合适,有什么统一的或者其他的规避办法

明天继续

Java记录 -23- equals方法和双等号解析

http://www.2cto.com/kf/201510/447831.html

时间: 2024-08-04 09:33:47

实体类中用基本类型好,还是用包装类型好?的相关文章

java中有了基本类型为什么还要有包装类型?

Java中基本数据类型与包装类型有: 为什么存在这两种类型呢? 我们都知道在Java语言中,new一个对象存储在堆里,我们通过栈中的引用来使用这些对象:但是对于经常用到的一系列类型如int,如果我们用new将其存储在堆里就不是很有效——特别是简单的小的变量.所以就出现了基本类型,同C++一样,Java采用了相似的做法,对于这些类型不是用new关键字来创建,而是直接将变量的值存储在栈中,因此更加高效. 有了基本类型为什么还要有包装类型呢? 我们知道Java是一个面相对象的编程语言,基本类型并不具有

实体类中用基本类型好,还是用包装类型

关于module或者实体类的建立的问题,用基本类型(int,long)好主要是,还是用包装类型(Integer,Long)好? 在过去很长时间我都自己冥想这个问题,也问过同事,都没有得到满意的答案,综合最近的学习,再考虑一下这个问题. 首先,分析各自的优缺点 基本类型(int,long) 优点 a.用于计算是效率高(effective java书上讲过的) b.不会由于常量池引起比较大小错误(例如java integer对象判断两个数字是否相等) 缺点 1.当数据库中查询出结果之后封装结果集时如

在动态sql的使用where时,if标签判断中,如果实体类中的某一个属性是String类型,那么就可以这样来判断连接语句:

如果是String类型的字符串进行判空的时候: <if test="inspectOrg != null and inspectOrg != ''"> INSPECT_ORG = #{inspectOrg} </if> 但是如果是实体类中的Integer类型,就是去掉空字符串的判断: <if test="inspectTaio != null"> AND INSPECT_TAIO = #{inspectTaio} </if&

XML文件与实体类之间的互相转换

二 序列化 XML文件与实体类的互相转换 一.将XML文件反序列化为实体类对象 1. 通常程序的配置信息都保存在程序或者网站的专门的配置文件中(App.config/web.config).但是现在为了演示XML序列化和反序列化,将配置信息保存在一个XML文件(config.xml)中,通过反序列化将配置信息读取出来保存到一个单独的类(Config.cs)中.这样如果需要用到配置信息,没必要每次都读写XML文件,只需要调用Config这个类就可以获取对应节点的信息. config.xml: <?

将JSON数据转换成Java的实体类

思路:首先将JSON格式的数据转换成JSONObject,然后将JSONObject转换成Java的实体类(其中类属性包括List等类型) Java实体类: SearchFilter 类 1 public class SearchFilter { 2 private String groupOp; 3 4 private List<SearchRule> rules; 5 6 public String getGroupOp() { 7 return groupOp; 8 } 9 10 pub

模拟实现MyBites中通过SQL反射实体类对象功能

话不多说,直接上干货! package cn.test; import java.lang.reflect.Method; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Timestamp; impor

javabean 实体类的转换

1. spring 工具类 BeanUtils.copyProperties 简单的实体类之间的转换,不能copy Date类型,利用java反射的原理来进行属性的复制.如果两个实体的类的里面嵌套实体类的类型不一样,copy后实体类的变为原实体类的类型,当在此使用目标实体类的时候会发生类型的转化异常.2. MapStruct是一个代码生成器的工具类,简化了不同的Java Bean之间映射的处理,所以映射指的就是从一个实体变化成一个实体.在实际项目中,我们经常会将PO转DTO.DTO转PO等一些实

JavaScript--基本包装类型+Math对象

1. 基本包装类型 1)为了便于操作基本类型值,ECMAScript提供了3个特殊的引用类Boolean, Number, String       每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型对象,从而可以使我们调用一些方法操作这些数据.    var s = "briup";    s.substring(2);       后台会自动完成以下操作:    a.创建String类型的一个实例    b.在实例上调用指定的方法    c.销毁这个实例 2)基本包装

基本包装类型

ECMAScript5还提供了三个特殊的引用类型:Boolean Number String 这些类型与其他的引用类型相似,但是也具有各自的基本类型的特殊行为.每当读取一个基本类型值的时候, 后台就会创建一个对应的基本包装类型的对象 1 var s1 = "some text"; 2 var s2 = s1.substring(2); s1包含一个字符串是一个基本类型值,所以不可能有方法,但是在后台经历了这样三个过程: (1)创建String类型的一个实例 (2)在实例上调用指定的方法