你可以非常简单地用一个enum构建一个单例或者工具类。
代码语言:javascript复制import java.io.Serializable;
public enum SafeSingleton implements Serializable{
INSTANCE;
SafeSingleton(){
//
}
public void singleton(){
System.out.println("hello!!");
}
}
@Test
public void test16() {
// Collections2.filter(unfiltered, predicate);
SafeSingleton.INSTANCE.singleton();
}
每一个enum实例,一个不同的子类 你可以重载一个enum实例的方法。这将高效的给一个enum的实例一个自己的实现。
代码语言:javascript复制package guava;
public enum Operation {
PLUS {
double eval(double x, double y) {
return x y;
}
},
MINUS {
double eval(double x, double y) {
return x - y;
}
},
TIMES {
double eval(double x, double y) {
return x * y;
}
},
DIVIDE {
double eval(double x, double y) {
return x / y;
}
};
abstract double eval(double x, double y);
}
@Test
public void test(){
double eval = Operation.DIVIDE.eval(12, 2);
System.out.println(eval);
}