Java, Google Collections Library; ¿Problema con AbstractIterator?
Estoy usando la biblioteca de Google CollectionsAbstractIterator Para implementar un generador. Me encontré con un problema mientras lo hacía; Lo he reducido a un tipo más básico y he reproducido el problema. Esta reducción es, obviamente, una exageración por lo que hace, contando desde 1 hasta números a través de un Iterable.
Esencialmente en el siguiente código, la versión sin comentarios funciona, y la comentada no lo hace (proporciona un último elemento nulo, en lugar de terminar en el último número).
¿Estoy haciendo algo mal o es un problema con la biblioteca?
private Iterable<Integer> elementGenerator(final int numelements) {
return new Iterable<Integer>() {
@Override public Iterator<Integer> iterator() {
return new AbstractIterator<Integer>(){
int localcount=0;
@Override protected Integer computeNext() {
if (localcount++ == numelements) return endOfData();
return localcount;
// return (localcount++ == numelements) ? endOfData() : localcount;
}
};
}
};
}
También intenté juguetear con el?:
disposición (por ejemplo, prefijando la devolución y comparando con +1 en su lugar), en vano. Busqué un poco buscando documentación sobre esto, pero no encontré nada. Obviamente, la?:
la sintaxis es solo una conveniencia, no una necesidad, pero aun así ...