【发布时间】:2012-10-24 21:35:33
【问题描述】:
选项#1:
public class WidgetStatics {
public static final String FIZZ = "fizz";
public static final String BUZZ = "buzz";
}
然后:
import com.me.myorg.myapp.WidgetStatics
public class Thing1 {
public void doSomething() {
String x = getValueFromUser();
if(x.equals(WidgetStatics.FIZZ))
// ...
}
}
选项 #2:
public interface WidgetStatics {
public static final String FIZZ = "fizz";
public static final String BUZZ = "buzz";
// ...
}
然后:
public class Thing2 implements WidgetStatics {
public void doSomething() {
String x = getValueFromUser();
if(x.equals(FIZZ))
// ...
}
}
我的问题:
- 一个选项比另一个选项性能更好吗?哪个导致
ClassLoader更费力:导入还是实施? - 是否存在一种方法比另一种方法更理想/更清洁的特定用例?
【问题讨论】:
-
选项 3:
import static com.me.myorg.myapp.WidgetStatics.*;. -
选项 4:
public enum WidgetStatistics { FIZZ, BUZZ }
标签: java inheritance interface static classloader