Từ Kotlin KEEP :
Lý do đằng sau những hạn chế này là các phiên bản tương lai của Kotlin có thể mở rộng và / hoặc thay đổi ngữ nghĩa của các hàm trả về kiểu Kết quả và toán tử null-safe có thể thay đổi ngữ nghĩa của chúng khi được sử dụng trên các giá trị của Kiểu kết quả. Để tránh phá vỡ mã hiện có trong các bản phát hành trong tương lai của Kotin và để ngỏ cho những thay đổi đó, việc sử dụng tương ứng sẽ tạo ra lỗi ngay bây giờ. Các ngoại lệ đối với quy tắc này được thực hiện cho các khai báo được xem xét cẩn thận trong thư viện tiêu chuẩn, là một phần của chính API loại kết quả.
Lưu ý: nếu bạn chỉ muốn thử nghiệm với Result
kiểu, bạn có thể bỏ qua giới hạn này bằng cách cung cấp đối số trình biên dịch Kotlin -Xallow-result-return-type
.
Khi sử dụng Gradle trên dự án Java hoặc Android:
Xác định đối số trình biên dịch trên tác vụ biên dịch Kotlin. Nó áp dụng cho cả mã sản xuất và thử nghiệm.
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
kotlinOptions {
freeCompilerArgs = freeCompilerArgs + "-Xallow-result-return-type"
}
}
Khi sử dụng Gradle trên dự án Multiplatform:
Xác định đối số trình biên dịch cho mỗi biên dịch đích. Nó áp dụng cho cả mã sản xuất và thử nghiệm.
kotlin {
targets.all {
compilations.all {
kotlinOptions {
freeCompilerArgs = freeCompilerArgs + "-Xallow-result-return-type"
}
}
}
}
kotlin.Result
đến? Tôi không thể tìm thấy lớp đó trong thư viện tiêu chuẩn .