Беседка 7 и Беседка 9

Если вы используете Java 8, и вы готовы написать несколько методов многократного использования, вы можете сделать это в одной строке.

private Map<String, List<String>> parse(final String query) {
    return Arrays.asList(query.split("&")).stream().map(p -> p.split("=")).collect(Collectors.toMap(s -> decode(index(s, 0)), s -> Arrays.asList(decode(index(s, 1))), this::mergeLists));
}

private <T> List<T> mergeLists(final List<T> l1, final List<T> l2) {
    List<T> list = new ArrayList<>();
    list.addAll(l1);
    list.addAll(l2);
    return list;
}

private static <T> T index(final T[] array, final int index) {
    return index >= array.length ? null : array[index];
}

private static String decode(final String encoded) {
    try {
        return encoded == null ? null : URLDecoder.decode(encoded, "UTF-8");
    } catch(final UnsupportedEncodingException e) {
        throw new RuntimeException("Impossible: UTF-8 is a required encoding", e);
    }
}

Но это довольно жестокая строка.

0
задан Mhkazemi 15 January 2019 в 18:02
поделиться

1 ответ

В более новой версии gazebo есть некоторые библиотеки, которые были перенесены в библиотеку зажигания, поэтому вы должны следовать им в руководстве по зажиганию 5.0.0.

А также по этому пути функция-член GetWorldPose была переименована в WorldPose.

0
ответ дан Mhkazemi 15 January 2019 в 18:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: