Matcher
实现MatchResult
,其中"包含用于确定与正则表达式匹配的结果的查询方法。"令人惊讶的是,虽然通过group()
界面可以使用group(int)
,groupCount()
和MatchResult
,但group(String)
不是。{/ p>
这是疏忽,还是出于兼容性原因而遗漏了Java 7?如果它是为了向后兼容,那么用Java 8中的默认方法解决了吗?
答案 0 :(得分:1)
这是因为{1.5}添加了MatchResult
接口,而group(String)
是Java 1.7的添加。
将group(String)
添加到接口将是一个重大变化,因为Java Matcher
之外的任何其他实现都无法编译。 Java设计者通常会避免这样的界面更改,因此他们没有这样做。
一个更有趣的问题是为什么他们没有在Java 1.8中完成它,它允许指定接口的默认实现。我的猜测是,除了投入一个未实现的"异常。