Как мне проверять на null при чтении (readUTF()) второй параметр конструктора класса в лямбда выражении?

        case EDUCATION:
            return new OrganizationSection(
                    readCollection(dis, () -> new Organization(
                            new Link(dis.readUTF(), dis.readUTF()),

Мне нужно проверить второй аргумент конструктора класса Link на null, и если он "null" - String, то присвоить null, а если не null, то записать значение считанное dis.readUTF(). Как можно это сделать через переменную, когда в лямбда выражении они должны быть финальными?


Ответы (2 шт):

Автор решения: IR42

Можно обернуть в String.valueOf

String.valueOf(dis.readUTF())

Если передаваемый объект будет null, то вернётся строка "null"

→ Ссылка
Автор решения: matua
    `case EDUCATION:
        return new OrganizationSection(
                readCollection(dis, () -> {
                    String url;
                    return new Organization(
                            new Link(dis.readUTF(), (url = dis.readUTF()).equals("null") ? null : url),...}));`
→ Ссылка