Давайте кратко рассмотрим:
mapping = cfg.getTypeMapping()
.entrySet()
.stream()
.filter(e -> e.getKey().startsWith(jsonType + "|"))
.findFirst();
Приведенный выше код, вероятно, выбирает какую-то карту, получает ее записи и повторяет их, чтобы остановиться на первом ключе, который startsWith(jsonType + "|")
.
Это все, и его можно легко переписать в коде цикла старой школы.
Но реальная проблема здесь такова: final Optional<Entry<String, String>>
: класс Необязательно был добавленв Java с Java 1.8.
Для нет эквивалента.Таким образом, весь ваш код просто может не быть переписан для Java 1.6
Самое близкое, что вы можете сделать: написать этот код цикла, и если цикл что-то найдет, вернуть этот результат, в противном случаевернуть ноль.В качестве альтернативы вы могли бы сделать это:
List<Entry<String, String>> firstMapping = Collections.emptyList();
for (Entry<String, String> entries = cfg.getTypeMapping().entrySet()) {
if (entry.getKey().startsWith(jsonType + "|")) {
firstMapping = Collections.singletonList(entry);
break;
}
}
return firstMapping;
В качестве альтернативы, учитывая тот факт, что ОП рассматривает возможность использования com.google.common.base.Optional
, вы можете сделать:
for (Entry<String, String> entries = cfg.getTypeMapping().entrySet()) {
if (entry.getKey().startsWith(jsonType + "|")) {
return Optional.of(entry);
}
}
return Optional.absent();
вместо.
И, конечно же, всегда помните: Java 6 есть.Следует избегать активной разработки для него, тем более, когда нужно полагаться на других людей, чтобы выполнить реальную работу по переносу портов.
(отказ от ответственности: мои примеры кода подразумевают детальное вдохновение псевдокода, я не запускал его через компилятор, он может содержать опечатки или тому подобное)