another question에서 영감을 얻었습니다. 그것이 왜 특별한 이유가 코 틀린에서Java 메소드의 정수 매개 변수가 플랫폼 유형이 아닌 Int에 매핑되는 이유는 무엇입니까?
public void push(Integer o)
이
push(o: Int)
로 볼 수 있습니다 :
fastutil
라이브러리에서 다음 Java 서명을하는 방법이있다 IntArrayList
클래스있다 Int
플랫폼 유형이 아닌 Int!
?
나는 코 틀린 소스와 프로젝트 내에서 자바 소스에 정의 된 동일한 서명을하는 방법은 코 틀린에서 볼 매개 변수 유형으로 Int!
있다 (심지어 다른 모듈에 정의, 심지어 항아리에서 수입 적어도 있기 때문에 push(o: Int!)
을 것으로 예상 그 모듈의!).
또한, 동작 설명은 법적 Int
파라미터를 갖는 (동일한 클래스) push(int o)
과 충돌을 야기 push(Integer o)
- 그들은 모두 push(o: Int)
으로 보인다. Integer
에 Int!
이있는 경우에는 충돌이 없습니다 (코드에서이 쌍의 메서드를 정의하려고 시도 했음 - 예상대로 작동 함, Int!
).
코 틀린 버전은 1.0.2
입니다. fastutil
에 대한
Gradle을 의존성 :
compile group: 'it.unimi.dsi', name: 'fastutil', version: '7.0.12'
관련 문제 : https://youtrack.jetbrains.com/issue/KT-11440 – erokhins