
用EnumSet代替位域.jpeg
import java.util.Collections;
import java.util.EnumSet;
import java.util.Set;
//EnumSet - a modern replacement for bit fields
public class Text {
public enum Style { BOLD, ITALIC, UNDERLINE, STRIKETHROUGH };
//Any Set could be passed in, but EnumSet is clearly best
public void applyStyles(Set<Style> styles) {
System.out.println(styles);
}
public void test() {
applyStyles(EnumSet.of(Style.BOLD, Style.ITALIC));
}
public void test2() {
applyStyles(EnumSet.of(Style.BOLD, Style.BOLD));
}
public void unmodifiableTest() {
EnumSet<Style> styles = EnumSet.of(Style.BOLD, Style.ITALIC);
Set<Style> unmodifiableStyle = Collections.unmodifiableSet(styles);
unmodifiableStyle.add(Style.UNDERLINE);
}
public static void main(String[] args) {
new Text().test();
new Text().unmodifiableTest();
}
}
网友评论