Effective Java 学习笔记(2)
有时,我们在写一个构造函数时,经常因为它包含众多的参数而苦恼,这时可以考虑用Builder模式来创建对象。
如,我们要设计一个营养成份的类,包含能量,蛋白质,脂肪,钙,铁,锌,维生素A, 维生素B1 ... 等,但在构造的时候,不一定每次都需要这些参数,如钙,铁,锌和维生素等是可选的,为了适应多种可能的搭配,比较原始的办法就是采用telescoping constructor模式,例子如下。
public class Nutrition
{
private int calories;
private int protein;
private int fat;
private int ca;
private int fe;
private int Va;
private int Vb;
...
public Nutrition(int cal, int pro){...}
public Nutrition(int cal, int pro, int fat){...}
public Nutrition(int cal, int pro, int fat, int ca){...}
public Nutrition(int cal, int pro, int fat, int ca, int fe){...}
public Nutrition(int cal, int pro, int fat, int ca, int fe, int ){...}
public Nutrition(int cal, int pro, int fat, int ca, int fe, int Va){...}
.......
}
这种方法的缺点很明显,一个函数的参数一旦超过3个,用户就很容易把顺序搞混,而更杯具的是这种情况编译器无法识别,非常不易查错。
第二种方法是JavaBean模式。
public class Nutrition
{
 
相关文档:
boolean java.lang.Object.equals(Object obj)
Indicates whether some other
object is "equal to" this one.
The equals method implements an
equivalence relation on non-null object references:
It is reflexive: for
any non-null reference value x, x.equals(x) should return true.
It ......
在java环境变量配置上抓住 “两添加,以修改就OK了”
按住windows键+PauseBreak键直接在高级中的环境变量处设置
1.添加
CLASSPATH
.;C:\Program Files\Java\jdk1.6.0_02\lib;(这是你Jdk安装的目录下的包)
2.添加
JAVA_HOME
C:\Program Files\Java\jdk1.6.0_02
3.修改
修改path变量
C:\Progra ......
来源:http://bbs.hackline.net/thread-3620-1-1.html
隐藏具体实现是Java语言的主要特点之一。正是因为这个原因,所以Java语言的移植性就特别好。如有个程序员编写了一个实现随机数的程序库,那么其他
程序开发人员只需要知道这个程序库需要传入那些参数,就可以使用这个类。现在无论是网上还是平时的工作中,有很多现成 ......
import java.util.regex.*;
public final class RegExpValidator
{
/**
* 验证邮箱
* @param 待验证的字符串
* @return 如果是符合的字符串,返回 <b>true </b>,否则为 <b>false </b>
*/
public static boolean isEmail(String str)
{ ......