Практические приложения для ссылок конструкторов Java 8?
Так что я потратил 2 часа, пытаясь найти практический пример ссылок на конструкторы Java 8, который действительно имеет для меня смысл. Дело не в том, что я не понимаю синтаксис или семантику ссылок на конструктор. Но я не могу придумать вариант использования, в котором я мог бы их использовать. Примеры, которые я нашел, в основном просто представили довольно бесполезный функциональный интерфейс и соответствующий класс / конструктор, чтобы иметь возможность использовать ссылку на конструктор. Но то, к чему это сводилось, просто делало простой new...()
очень сложным способом. Функциональный интерфейс никогда не использовался каким-либо иным способом, кроме как через ссылку на конструктор, так какой в этом смысл?
Может кто-нибудь дать мне практический пример, где вы могли бы использовать ссылку на конструктор для реализации функционального интерфейса, но где функциональный интерфейс НЕ ПРОСТО используется для передачи этой ссылки на конструктор, но на самом деле имеет причину для существования, потому что он используется с другими реализациями также?
1 ответ
Вот пример нетривиальной ссылки на конструктор
private final Map<String, BigInteger> biCache = new HashMap<>();
public BigInteger parse(String str) {
return biCache.computeIfAbsent(str, BigInteger::new);
}
В этом случае
BigInteger::new
на самом деле похож на
s -> new BigInteger(s)