final Pattern SECTION_PATTERN = Pattern.compile("^\\[(.+)]$");

这里的Pattern是一个类
complie():将一个字符串形式的正则表达式,转换(或“编译”)成一个 Pattern 对象。

Matcher sectionMatcher = SECTION_PATTERN.matcher(line);

在Pattern规则创建后,使用这个规则对line(也就是每行)进行匹配器(match)创建。

对于 A.method(B) 这种形式的调用:

return items.toArray(new GameItem[0]);

为什么toArray()方法在这里的小括号内必须要有内容:
1:无参数的 toArray() 只会返回一个通用的 Object[]
2:由于类型擦除(type erasure)特性,在代码编译后,List<GameItem> 在运行时层面只知道它是一个 List,它“忘记”了自己专门存放 GameItem。所以必须使用一个new GameItem[0]告诉toArray()“我需要一个 GameItem 类型的数组。请你用这个类型作为模板,为我创建一个大小合适的新数组,并把列表里的所有元素都装进去。”

总结

数据类型 如何定义 如何获取长度/大小
数组 (Array) int[] myArr; myArr.length (属性)
集合 (Collection) List<Integer> myList; myList.size() (方法)
将数组类型的变量变为字符串以为了能够输出出来。(两种方法)
System.out.println(Arrays.toString(resultCircle));
System.out.println("Area: " + circleResults[0]);
System.out.println("Perimeter: " + circleResults[1]);