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;
}
}
分享到:
相关推荐
effective-java 配套代码
《Effective Java》第三版中文版目录 第一章 介绍 1 第二章 创建和销毁对象 4 1 考虑用静态工厂方法替换构造器 4 2 当遇到多个构造器参
Effective Java读书笔记.pdf
effective-java.pdf
Effective java 3 学习记录
Effective Java读书笔记,记载了大部分我觉的有用的东西,前半部分有代码说明,但后半部分的代码,太过琐碎,就没有整理
effective java 读书笔记,第二版自己摘要并翻译,以备速查。
Effective-Java Effective Java中文版第二版示例代码
Effective Java Effective Java Effective Java
【Effective Java】阅读笔记markdown 文件
《Effective Java》读书分享.pptx
15. 使类和成员的可访问性最小化 16. 在公有类中使用访问方法而非公有域 17.使可变性最小化:不可变类
代码优化:有效使用内存 Code Optimization: Effective Memory Usage pdf 英文版 清晰,该书中文版翻译质量很差,建议直接读英文版
构建高效的Java企业级系统是项困难的工作。本书详细介绍企业级计算技术中的常见问题,并描述使用企业级Java平台技术处理这些问题的方法。... ——John Croupi, Sun著名工程师,《Core J2EEPatterns》作者之一
Effective Enterprise Java
effectiveJava的笔记
有效的Java Java Effective 2nd Edition书中的源代码
Java》书中的经验法则示例代码,结合Java源码来理解这些最佳实践,并应用于实际项目。 Effective Java, Third Edition Updated for Java 9, Best practices for ... the Java Platform the source code from the ...