如果你有几个静态的final 变量或者常数,但是必须在不同的数据类型之间进行转换,比方从int到Integer,你可以使用Constant类。
在编程中最早的一课就是不要在程序里到处写下数字,而是应该把它们放在一些特定的变量里。许多程序代码会与下面这行类似:
static public final int HTTP_DEFAULT_PORT = 80;
但是这会造成两个大麻烦。第一个问题是变量的值通常会认为是唯一的,但是事实上却从来不是这样。例如:
static public final int DOZEN = 12;
static public final int MONTHS_IN_YEAR = 12;
public void orderEggs(int number) {
...
}
在上面的代码段里,DOZEN和MONTHS_IN_YEAR是可以互相交换的,而且orderEggs(MONTHS_IN_YEAR) 也是合法的而且无法避免。
第二个问题是方法签名是与传递的int捆绑在一起的。这意味着把int修改成long或者另一个对象类型的话会造成大量的代码需要改动。
下面的类提供了一个解决这两个问题的方法:
packagecom.generationjava.lang;
public class Constant {
private final Object value;
public Constant() {
this.value = new Object();
}
public Constant(Object obj) {
this.value = obj;
}
public Constant(inti) {
this.value = new Integer(i);
}