Effective java 代码优化实例2

package chape7;
/**
* 檢查參數的有效性
* 當編寫方法或者構造器時,應該考慮他的參數有什麽限制 應該吧這些限制寫在文檔中,並且在這個方法的開頭處,通過顯示的檢查
* 來實施這些限制。養成這樣的習慣很重要
* 當判斷一個數據的合法性的時候就要拋出異常。 這裡就涉及到異常 第九章 60條:優先使用標準的異常 就是java自帶的異常
* 這也是一種類的重用的表現;
* 常用的异常:
* IllegalArgumentException 非null的参数数值不正确;传入的参数不合法;
* IllegalStateException 对于方法调用而言,对象状态不合法比如摸个对象在被正确的初始化之前就调用 会抛出这个异常
* NullPointerException 空指针异常 在禁止null的情况下使用了null值;
* IndexOutOfBoundsException 下标参数越界
* ConcurrentModificationException 当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常。
* UnsupportedOperationException 当不支持请求的操作时,抛出该异常
* @author lee
*
*/
public class Chape38 {

/**
* @param args
*/
public static void main(String[] args) {
Nuter nu = new Nuter.Builder (200,2).fat(-1).sodium(20).build();

}
}
class Nuter
{
private final int size;
private final int sering;
private final int fat;
private final int sodium;

public static class Builder
{
//这两个参数时必须的参数
private final int size;
private final int sering;
//下面是可选的参数 设置了默认值
private int fat = 0;
private int sodium = 0;

public Builder (int size ,int sering)
{
this.sering = sering;
this.size = size;
}

public Builder fat (int val)
{
/**
* 断言的使用
* 在這裡判斷數據的合法性 *
*/
if(val < 0)
{
throw new IllegalArgumentException ("val必須大於零");
}
fat = val;
return this;
}
public Builder sodium (int val)
{
this.sodium = val;
return this;
}
public Nuter build ()
{
return new Nuter (this);
}
}
private Nuter (Builder buder)
{
this.size = buder.size;
this.sering = buder.sering;
this.sodium = buder.sodium;
this.fat = buder.fat;
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值