public abstract class Extensions extends Object
We have preserved most of the API. But we've changed a few things, so that the API is more typical Java API:
Enumerable, similar to LINQ.NET's IEnumerable. IEnumerable is built into C#, and that gives it advantages: the standard collections implement it, and you can use any IEnumerable in a foreach loop. We made the Java
Iterable, so that it can be used in for-each loops. But the standard collections still don't implement it. A few methods that take an IEnumerable in LINQ.NET take an Iterable in LINQ4J.
LongFunction1, and the variants of
ExtendedEnumerable.sum(org.apache.calcite.linq4j.function.BigDecimalFunction1<TSource>)that call them.
whereNhave been renamed from
whereto prevent ambiguity.
IEnumerableinterfaces have many such methods. In Java, those methods need to be explicitly added to the interface, and will need to be implemented by every class that implements that interface. We can help by implementing the methods as static methods, and by providing an abstract base class that implements the extension methods in the interface. Hence
AbstractQueryablecall methods in
Function2, depending on the number of arguments to the function, because Java types cannot be overloaded based on the number of type parameters.
Mapwhose value type is an
Func1<T, Boolean>. It would be wrong to infer that the function is allowed to return null.
|Modifier and Type||Method and Description|
Copyright © 2012–2018 The Apache Software Foundation. All rights reserved.