美文网首页
第 36 条:用EnumSet代替位域

第 36 条:用EnumSet代替位域

作者: 综合楼 | 来源:发表于2021-05-17 20:55 被阅读0次
用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();
  }
}

相关文章

网友评论

      本文标题:第 36 条:用EnumSet代替位域

      本文链接:https://www.haomeiwen.com/subject/linmdltx.html