Tap*_*ose 7 java oop enums static constants
我有两种方法来定义常量.第一个通过使用Enum将一堆静态最终DataType变量保存在一个类中.
这是拳头类型:
public class TipTipProperties {
public static final String MAX_WIDTH_AUTO = "auto";
public static final String POSITION_RIGHT = "right";
}
Run Code Online (Sandbox Code Playgroud)
并且这些变量的用法将通过静态调用,例如: TipTipProperties.MAX_WIDTH_AUTO
第二种是:
public enum TipTipProperties {
MAX_WIDTH_AUTO(MaxWidth.AUTO),
POSITION_RIGHT(Position.RIGHT);
private MaxWidth maxWidth;
private Position position;
private TipTipProperties(MaxWidth maxWidth) {
this.maxWidth = maxWidth;
}
private TipTipProperties(Position position) {
this.position = position;
}
public MaxWidth getMaxWidth() {
return maxWidth;
}
public Position getPosition() {
return position;
}
public enum MaxWidth {
AUTO("auto");
private String width;
private MaxWidth(String width) {
this.width = width;
}
public String getWidth() {
return width;
}
}
public enum Position {
RIGHT("right"),
private String position;
private Position(String position) {
this.position = position;
}
public String getPosition() {
return position;
}
}
}
Run Code Online (Sandbox Code Playgroud)
作为一个例子用法:TipTipProperties.POSITION_RIGHT.getPosition().getPosition()
.
我的问题是:
提前致谢.
正如 Joshua Bloch 在《Effective Java》中所说,Enum 是最好的选择,使用 Enum 可以有更多的控制权,就像如果你想打印所有常量一样,你可以。对于类常量,您无法实现类型安全。阅读本文以获得进一步帮助