12345678_0001
只是为了开始清理代码。我们已(更正):public static final String[] VALUES = new String[] {"AB","BC","CD","AE"};这是一个可变的静态,FindBugs会告诉你非常淘气。应保密:private static final String[] VALUES = new String[] {"AB","BC","CD","AE"};(注意,您实际上可以删除new String[];(比特)因此,引用数组是不好的,特别是在这里我们需要一个集合:private static final Set<String> VALUES = new HashSet<String>(Arrays.asList(
new String[] {"AB","BC","CD","AE"}));(像我这样多疑的人,如果被包裹在里面,可能会感到更自在。Collections.unmodifiableSet-甚至可以公开。“给定字符串s,是否有一种测试值是否包含s的好方法?”VALUES.contains(s)o(1)。最新情况:从JavaSE 9开始Set.of.private static final Set<String> VALUES = Set.of(
"AB","BC","CD","AE");这个右型, 不变, O(1)和简练。漂亮的,美丽的。(就品牌而言,可以预见的是,集合API仍然缺少不可变的集合类型,语法仍然过于冗长,不适合我的口味。)