为什么MatchResult没有针对命名组的方法?

时间:2016-08-03 02:37:12

标签: java regex

Matcher实现MatchResult,其中"包含用于确定与正则表达式匹配的结果的查询方法。"令人惊讶的是,虽然通过group()界面可以使用group(int)groupCount()MatchResult,但group(String)不是。{/ p>

这是疏忽,还是出于兼容性原因而遗漏了Java 7?如果它是为了向后兼容,那么用Java 8中的默认方法解决了吗?

1 个答案:

答案 0 :(得分:1)

这是因为{1.5}添加了MatchResult接口,而group(String)是Java 1.7的添加。

group(String)添加到接口将是一个重大变化,因为Java Matcher之外的任何其他实现都无法编译。 Java设计者通常会避免这样的界面更改,因此他们没有这样做。

一个更有趣的问题是为什么他们没有在Java 1.8中完成它,它允许指定接口的默认实现。我的猜测是,除了投入一个未实现的"异常。