Вы можете использовать Гуава :
List<MyObject> myObjects = Lists.transform(myStrings,
new Function<String, MyObject>() {
private int i = 0;
public MyObject apply(String stringValue) {
return new MyObject(i++, stringValue);
}
});
На самом деле это просто приносит итерацию в библиотеку. С точки зрения написанного кода, оно будет примерно таким же, пока не будут введены замыкания в Java 8.
Однако вы должны знать, что создание функции с таким состоянием (с i
) является плохой формой, поскольку теперь важен порядок, в котором она применяется к списку.