>Java >Java 코드 서명에서 값 클래스와 함께 Kotlin 메소드 사용

Java 코드 서명에서 값 클래스와 함께 Kotlin 메소드 사용

WBOY
WBOY앞으로
2024-02-09 08:51:22655검색

Java 코드 서명에서 값 클래스와 함께 Kotlin 메소드를 사용하는 것은 일반적인 개발 기술입니다. 값 클래스는 Java의 기본 데이터 유형과 유사하게 데이터를 저장하고 전달하는 데 사용할 수 있는 Kotlin의 특수 유형입니다. Java 코드의 값 클래스와 함께 Kotlin 메서드를 사용하면 Kotlin의 구문 설탕과 함수형 프로그래밍 기능을 최대한 활용하여 간결하고 우아한 방식으로 데이터를 처리할 수 있습니다. 이 기사에서는 Java 코드의 값 클래스와 함께 Kotlin 메서드를 사용하는 방법을 소개하고 그 장점과 고려 사항을 살펴보겠습니다. Java 개발자이든 Kotlin 매니아이든 관계없이 이 기사에서는 귀중한 지식과 팁을 얻을 수 있습니다.

질문 내용

이런 Kotlin 엔터티가 있습니다

으아악

그리고 일부 서비스 인터페이스

으아악

및 그 구현.

하지만 java 코드에서 아래와 같은 인터페이스를 사용하면

으아악

컴파일 오류가 발생합니다. 그러나 이는 Kotlin 컴파일러가 소스 코드에서 fun do(entityid: long)를 생성하므로 매우 이해하기 쉬운 동작입니다. 좋아요, service.do(1l) 같은 것을 사용해 보겠습니다. 또 다른 질문이 생길 것입니다:

으아악

이것은 컴파일 중에 인터페이스가 실제로 변경되지 않기 때문인 것 같습니다. 방법을 찾았습니다. value class 替换为 data class 但我会有 value class를 추가하세요.

아마도 이 상황에 대한 해결책이 있을까요?

해결 방법

long 的函数重载采用 value 类 的函数,并在后台调用原始函数。注意 @jvmname 上的 value 类 重载,这样 java 只会看到 long 오버로드를 사용할 수 있습니다.

코틀린

으아악

그런 다음 long 리터럴을 사용하여 Java에서 호출할 수 있습니다.

으아악

위 내용은 Java 코드 서명에서 값 클래스와 함께 Kotlin 메소드 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제