使用java.lang.Integer需要注意的一个问题
来源:互联网 发布:java多线程有什么用 编辑:程序博客网 时间:2024/06/05 09:02
自Java5开始,提供了基本数据类型的自动装箱、拆箱功能。
一般情况下,我们创建一个类的对象的时候是这样创建:
Class clazz = new Class(参数?);
那么,在Java5开始,创建一个Integer(举例),可以如下:
Integer i = 10;
系统为我们进行了如下操作:Integer i = new Integer(10);
自动拆箱:
Integer i = 10;
int j = i;
自动装箱和拆箱给我们日常的开发工作提供了极大的便利,但有一个问题却需要我们注意。
比如:
public class IntegerDemo {
/**
*
* @author 秦慈东
* @date Oct 30, 2014 9:42:21 AM
*/
public static void main(String[] args) {
Prize prize = new Prize();
if (prize.getTotal() > prize.getMaxsum()) {
System.out.println("over...");
}
else {
System.out.println("中了一个公仔。");
prize.setTotal(prize.getTotal()+1);
}
}
}
class Prize {
private Integer total;
private Integer maxsum;
/**
* @return the total
*/
public Integer getTotal() {
return total;
}
/**
* @param total the total to set
*/
public void setTotal(Integer total) {
this.total = total;
}
/**
* @return the maxsum
*/
public Integer getMaxsum() {
return maxsum;
}
/**
* @param maxsum the maxsum to set
*/
public void setMaxsum(Integer maxsum) {
this.maxsum = maxsum;
}
}
这段程序运行的结果是什么呢?答案是这个会报空指针异常!
其实也容易理解,total和maxsum都是Integer类型,是一个对象,不是基本数据类型。
所以取值或比较的时候一定要注意上面的这个问题。
- 使用java.lang.Integer需要注意的一个问题
- Java.lang.Process需要注意的问题
- 使用Integer.parseInt()需要注意的问题分析
- 使用synchronized需要注意的一个问题
- 使用java.lang.Process类时需要注意的事情
- STM32的ADC使用需要注意的一个小问题
- 关于java的io一个需要注意的问题
- 使用DB2中需要注意的一个问题。
- 在MyEclipse中使用Hibernate需要注意的一个问题
- 使用scanf和fgets需要注意的一个小问题
- 使用string.Format需要注意的一个性能问题
- 使用string.Format需要注意的一个性能问题
- php中使用$_REQUEST需要注意的一个问题
- php中使用$_REQUEST需要注意的一个问题
- Arrays.asList()使用时需要注意的一个问题
- 模板类使用friend时需要注意的一个问题
- Java基础 Arrays.atList需要注意的一个问题
- 使用需要注意的问题
- Activity和Service通信
- 表视图的常用属性和方法
- PHP预定义变量(一)
- HLS协议解析1
- Unix时间戳转换为标准时间
- 使用java.lang.Integer需要注意的一个问题
- 【边做项目边学Android】知识点:Android控件系列之ProgressDialog与ProgressBar
- Java代码块
- 怎样分析crash dump(内存错误)
- mac下ios 7.1 版本openssl编译
- java enum枚举类的使用
- windows 7 开机慢,分析解决 删除无用文件目录
- [Java 8] (9) Lambda表达式对递归的优化(下) - 使用备忘录模式(Memoization Pattern)
- 四川大学考博,英语难,如何一次顺利过关