你可以非常簡單地用一個enum構建一個單例或者工具類。
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的實例一個自己的實現。
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);
}