Здравствуйте, vsb, Вы писали:
vsb>В Java и сейчас так (та ещё дурость).
У меня на рабочем проекте (OpenJDK 21) компилируется без ошибок:
private void filterBy_SubjectTypeCode_Inn(@NonNull TARLSubjectInfoGetListInParam subjectSet,
@NonNull List<GoldSubjectRecord> goldSubjectRecords) {
if (subjectSet.getCommon() != null) {
Integer idSubjectType = idTypeCacheService.getIdType(subjectSet.getCommon().getSSubjectTypeCode());
String sInn = subjectSet.getCommon().getSInn();
if (idSubjectType != null && sInn != null) {
mdmDataManageService
.getTarantoolObjectByField("sINN", sInn, GoldSubjectRecord.class)
.stream()
.filter(record -> record.getIdSubjectType().equals(idSubjectType))
.forEach(goldSubjectRecords::add);
}
}
}
Раньше обязательно требовало final для таких переменных.
vsb>Поле неизменяемое, а содержимое изменяемое.
В Java полно подобных косяков, к сожалению. Язык из костылей, прямо аналог Linux в мире ЯП. Но там как раз GC, разруливающий циклические зависимости.