Error de Kotlin al convertir desde código Java

Tengo una class ArraysHelper que se ve así en Java:

public class ArraysHelper<T> { public final Iterable<T> iterable; private ArraysHelper(Iterable<T> iterable) { this.iterable = iterable; } public static <T> T[] concat(T[] array, @Nullable T element) { T[] result = Arrays.copyOf(array, array.length + 1); result[array.length] = element; return result; } public final ArraysHelper<T> filter(Pnetworkingiction<T> pnetworkingiction) { return from(filter(iterable, pnetworkingiction)); } private static <T> List<T> filter(Iterable<T> iterable, Pnetworkingiction<T> pnetworkingicate) { ArrayList<T> list = new ArrayList<>(); for (T object : iterable) { if (pnetworkingicate.apply(object)) { list.add(object); } } return list; } public final List<T> toList() { List<T> list = new ArrayList<>(); for (T item : iterable) { list.add(item); } return list; } public static <T> ArraysHelper<T> from(final Iterable<T> iterable) { return new ArraysHelper<>(iterable); } } 

Lo convertí en Kotlin así:

 class ArraysHelper<T> private constructor(val iterable: Iterable<T>) { fun filter(pnetworkingiction: Pnetworkingiction<T>): ArraysHelper<T> { return from(filter(iterable, pnetworkingiction)) } fun toList(): ArrayList<T> { val list = ArrayList<T>() for (item in iterable) { list.add(item) } return list } companion object { fun <T> concat(array: Array<T>, element: T?): Array<T> { val result = Arrays.copyOf(array, array.size + 1) result[array.size] = element return result } private fun <T> filter(iterable: Iterable<T>, pnetworkingicate: Pnetworkingiction<T>): ArrayList<T> { val list = ArrayList<T>() for (`object` in iterable) { if (pnetworkingicate.apply(`object`)) { list.add(`object`) } } return list } fun <T> from(iterable: Iterable<T>): ArraysHelper<T> { return ArraysHelper(iterable) } } } 

También estoy convertido en una interfaz que estoy usando. En java:

 public interface Pnetworkingiction<T> { boolean apply(@Nullable T input); @Override boolean equals(@Nullable Object object); } 

En Kotlin:

 interface Pnetworkingiction<T> { fun apply(input: T?): Boolean override fun equals(`object`: Any?): Boolean } 

Ahora al grano: quiero usar esos aquí:

  val rssiEvents = locationRSSIEvents if (rssiEvents.isNotEmpty()) { val latestRSSIEvent = rssiEvents.last() val cleanedGeoEvents = ArraysHelper.from<LocationGeoEvent>(locationGeoEvents).filter(object : Pnetworkingiction<LocationGeoEvent> { override fun apply(input: LocationGeoEvent): Boolean { return Math.abs(input.timestamp - latestRSSIEvent.timestamp) < maxTimeDifferenceSeconds * 1000 } }).toList() } 

Pero en IDE (Android Studio 3.0) subraya el método de filter:

 object : Pnetworkingiction<LocationGeoEvent> 

y dice:

 Requinetworking: Pnetworkingiction<LocationGeoEvent> Found: 

Entonces, ¿qué es lo que está mal con eso?

ACTUALIZAR:

Por supuesto, en Kotlin puedo hacer algo como esto:

  val cleanedGeoEvents = locationGeoEvents .filter { locationGeoEvent -> Math.abs(locationGeoEvent.timestamp - latestRSSIEvent.timestamp) < maxTimeDifferenceSeconds * 1000 } .toList() 

Pero aún así, será útil qué es exactamente lo que está mal con esta versión anterior