Как мне проверять на 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),...}));`