根据
Groovy 3.0 release notes
:
Groovy为现有的Java类添加了许多扩展方法。在Groovy中
3、新增了约80种此类扩展方法。我们只强调一个
这里有几个:。。。
我需要2.5.x分支中不存在的此类新方法的完整列表。我在哪里可以找到它(谷歌没有帮助我:/)?
动机
:我开发了一个
groovy extension library
我经常使用Groovy没有的方法。我即将更新它以使用Groovy 3.0.3,但我想删除Groovy中已经实现的任何方法。
由于这个问题已经结束,我将在这里为感兴趣的人回答:
答案:
我在groovy邮件列表中收到了帮助:
如果你有源代码和IDE,并搜索“@since 3.0”,当使用*Methods.java作为文件掩码搜索时,你会找到79个结果,使用*Extensions.java作为文档掩码搜索时会找到1个结果。可能有一些添加时没有@ssince,或者添加在与其他文件掩码匹配的文件中,但这是一个良好的开端。
这是我发现的:
默认Groovy方法:
void printf(Closure self, String format, Object[] values)
void printf(Closure self, String format, Object value)
Object average(Iterable self)
Object average(Object[] self)
Object average(Iterator<Object> self)
BigDecimal average(byte[] self)
BigDecimal average(short[] self)
BigDecimal average(int[] self)
BigDecimal average(long[] self)
double average(float[] self)
double average(double[] self)
<T> Object average(Iterable<T> self, @ClosureParams(FirstParam.FirstGenericType.class) Closure closure)
<T> Object average(T[] self, @ClosureParams(FirstParam.Component.class) Closure closure)
<T> Object average(Iterator<T> self, @ClosureParams(FirstParam.FirstGenericType.class) Closure closure)
void shuffle(List<?> self)
void shuffle(List<?> self, Random rnd)
<T> List<T> shuffled(List<T> self)
<T> List<T> shuffled(List<T> self, Random rnd)
<T> void shuffle(T[] self)
<T> void shuffle(T[] self, Random rnd)
<T> T[] shuffled(T[] self)
<T> T[] shuffled(T[] self, Random rnd)
Boolean isAtLeast(BigDecimal left, BigDecimal right)
Boolean isAtLeast(BigDecimal left, String right)
字符串
Boolean isAtLeast(String left, String right)
CharSequence takeRight(CharSequence self, int num)
String takeRight(String self, int num)
String takeRight(GString self, int num)
CharSequence takeAfter(CharSequence self, CharSequence searchString)
String takeAfter(String self, CharSequence searchString)
String takeAfter(GString self, CharSequence searchString)
CharSequence takeBefore(CharSequence self, CharSequence searchString)
String takeBefore(GString self, String searchString)
String takeBefore(String self, String searchString)
CharSequence dropRight(CharSequence self, int num)
String dropRight(String self, int num)
String dropRight(GString self, int num)
CharSequence takeBetween(CharSequence self, CharSequence from, CharSequence to)
String takeBetween(String self, CharSequence from, CharSequence to)
String takeBetween(GString self, CharSequence from, CharSequence to)
CharSequence takeBetween(CharSequence self, CharSequence enclosure)
String takeBetween(String self, CharSequence enclosure)
String takeBetween(GString self, CharSequence enclosure)
CharSequence takeBetween(CharSequence self, CharSequence from, CharSequence to, int occurrence)
String takeBetween(String self, CharSequence from, CharSequence to, int occurrence)
String takeBetween(GString self, CharSequence from, CharSequence to, int occurrence)
CharSequence takeBetween(CharSequence self, CharSequence enclosure, int occurrence)
String takeBetween(String self, CharSequence enclosure, int occurrence)
String takeBetween(GString self, CharSequence enclosure, int occurrence)
boolean startsWithIgnoreCase(CharSequence self, CharSequence searchString)
boolean endsWithIgnoreCase(CharSequence self, CharSequence searchString)
boolean containsIgnoreCase(CharSequence self, CharSequence searchString)
static dumpAll(Thread self)
Java8扩展:
int get(final OptionalInt self)
long get(final OptionalLong self)
double get(final OptionalDouble self)
<T> Optional<T> filter(final Optional<?> self, final Class<T> type)
OptionalInt filter(final OptionalInt self, final IntPredicate test)
OptionalLong filter(final OptionalLong self, final LongPredicate test)
OptionalDouble filter(final OptionalDouble self, final DoublePredicate test)
<T> Optional<T> mapToObj(final OptionalInt self, final IntFunction<? extends T> mapper)
<T> Optional<T> mapToObj(final OptionalLong self, final LongFunction<? extends T> mapper)
<T> Optional<T> mapToObj(final OptionalDouble self, final DoubleFunction<? extends T> mapper)
<T> OptionalInt mapToInt(final Optional<T> self, final ToIntFunction<? super T> mapper)
<T> OptionalLong mapToLong(final Optional<T> self, final ToLongFunction<? super T> mapper)
<T> OptionalDouble mapToDouble(final Optional<T> self, final ToDoubleFunction<? super T> mapper)
<S,T> Optional<T> collect(final Optional<S> self, @ClosureParams(FirstParam.FirstGenericType.class) final Closure<T> transform)
<S,T> Future<T> collect(final Future<S> self, @ClosureParams(FirstParam.FirstGenericType.class) final Closure<T> transform)
<T> Stream<T> stream(final NullObject self)
<T> Stream<T> stream(final T self)
<T> Stream<T> stream(final Enumeration<T> self)
<T> Stream<T> stream(final Iterable<T> self)
<T> Stream<T> stream(final Iterator<T> self)
<T> Stream<T> stream(final Spliterator<T> self)
<T> Stream<T> stream(final Optional<T> self)
IntStream stream(final OptionalInt self)
LongStream stream(final OptionalLong self)
DoubleStream stream(final OptionalDouble self)