Выпуск Lombok в вызове Java из Kotlin [Duplicate]JAVA

Программисты JAVA общаются здесь
Anonymous
Выпуск Lombok в вызове Java из Kotlin [Duplicate]

Сообщение Anonymous »

У меня есть 2 класса модели Java: < /p>
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
public class Group {

public String name;

public Group(String name) {
this.name = name;
}
}

import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@Data
@NoArgsConstructor
public class User {

public String name;
public List groups;

public User(String name, List groups) {
this.name = name;
this.groups = groups;
}
}
< /code>
и класс Kotlin, который их использует: < /p>
import org.slf4j.LoggerFactory

fun main() {
val users = listOf(
User("Tom", listOf(Group("abc"), Group("dsd"), Group("hm"))),
User("Ben", listOf(Group("Abc"), Group("dsd"), Group("hm"))),
User("Lara", listOf(Group("abc"), Group("osd"), Group("hm"))),
User("Bob", listOf(Group("Gbc"), Group("fsd"), Group("hm"))),
User("John", listOf(Group(""), Group("fsd"), Group("hm"))),
User("Mat", listOf(Group("jhn"), Group("fsd"), null))
)

val logger = LoggerFactory.getLogger("UserGroupDemoKotlin")
logger.info("RESULT Users: {}", getUserWithSmallLetterGroups(users))
}

private fun getUserWithSmallLetterGroups(users: List): List {
return users.filter { user ->
user.groups?.all { group ->
group?.name?.isNotEmpty() == true && group.name?.first()?.isLowerCase() == true
} == true
}.map { it.name }
}
< /code>
И вот мой файл build.gradle: < /p>
plugins {
id 'java'
id 'org.jetbrains.kotlin.jvm' version '1.8.0'
}

group = 'org.example'
version = '1.0-SNAPSHOT'

repositories {
mavenCentral()
}

dependencies {
implementation 'org.slf4j:slf4j-api:2.0.16'
implementation 'ch.qos.logback:logback-classic:1.5.16'
implementation 'org.projectlombok:lombok:1.18.30'
testImplementation platform('org.junit:junit-bom:5.9.1')
testImplementation 'org.junit.jupiter:junit-jupiter'
annotationProcessor 'org.projectlombok:lombok:1.18.30'
}

test {
useJUnitPlatform()
}
< /code>
Этот код работает нормально. Однако, если я изменю письменный конструктор @allargscstrustructor из Lombok, я увижу следующее сообщение об ошибке, пока сборка: < /p>

Слишком много аргументов для пользователя публичного конструктора ()

Так что выглядит так, как будто котлин не может забрать конструктор, который создает Ломбок. Однако обычный класс Java с основной функцией может правильно поднять его и отлично работает без проблемы с тем же файлом build.gradle.
Так почему этот вопрос происходит с классом Kotlin?

Подробнее здесь: https://stackoverflow.com/questions/794 ... rom-kotlin

Вернуться в «JAVA»