1. 在 项目名.editors这个包下,有一个TagRule类,其中在XMLPartitionScanner这个类中引用了TagRule的同名方法。即:
rules[2]= new TagRule(tag);
实际上,TagRule实现了一个语法规则,TagRule的同名方法的源码如下:
public TagRule(IToken token) {
super("(", ")", token);//控制最外围的符号,即若最外围为()时,“”内的字符会变成绿色
}
其实呢,MultiLineRule这个方法完全可以实现以上的功能:将rules[2]=new TagRule(tag);这一句换成rules[2] = new MultiLineRule("(",")",tag);然后将TagRule这个类去掉即可,也完全可以实现相同的功能。
经过以上分析,可知原来TagRule这个类重写了父类的方法,写成了与MultiLineRule功能相同的方法。其实TagRule这个类还可以重写成别的形式,以完成不同的功能。