Rasa Core TypeError (чатбот)

Используйте коллекцию google. Пример:

    Function transform = new Function() {
        @Override
        public Long apply(ViewValue from) {
            return from.getId();
        }
    };
    List list = Lists.newArrayList();
    List idsList = Lists.transform(list, transform);

UPDATE:

На Java 8 вам не нужен Guava. Вы можете:

import com.example.ViewValue;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;

Function transform = ViewValue::getId;
List source = new ArrayList<>();
List result = source.stream().map(transform).collect(Collectors.toList());

Или просто:

List source= new ArrayList<>();
List result = source.stream().map(ViewValue::getId).collect(Collectors.toList());

СЛЕДУЮЩЕЕ ОБНОВЛЕНИЕ (последнее после изменения Javaslang на Vavr):

В настоящее время это стоит упомянуть о решении с библиотекой Javaslang ( http://www.javaslang.io/ ) библиотека Vavr ( http://www.vavr.io/ ). Предположим, что у нас есть наш список с подлинными объектами:

List source = newArrayList(new ViewValue(1), new ViewValue(2), new ViewValue(2));

Мы могли бы сделать преобразование с помощью класса List из библиотеки Javaslang (в конечном счете сбор не удобен):

List result = io.vavr.collection.List.ofAll(source).map(ViewValue::getId).toJavaList();

Но вы увидите власть только с списками Javaslang:

io.vavr.collection.List source = javaslang.collection.List.of(new ViewValue(1), new ViewValue(2), new ViewValue(3));
io.vavr.collection.List res = source.map(ViewValue::getId);

Я рекомендую посмотреть доступные коллекции и новые типы в этой библиотеке (особенно мне нравится тип Try). Вы найдете документацию по следующему адресу: http://www.javaslang.io/javaslang-docs/ http://www.vavr.io/vavr-docs/ .

PS. Из-за Oracle и слова «Java» в названии им пришлось изменить имя библиотеки из javaslang на что-то еще. Они решили Вавра.

0
задан Leon-Paul Schaub 27 February 2019 в 15:12
поделиться