Tôi có mã sau đây sản xuất lỗi lint sau đây. Kotlin áp dụng() tin nhắn mở rộng lint trong Android Studio 3.0-alpha8
fun newInstance(message: String?): DialogFragment {
return DialogFragment().apply {
arguments = Bundle().apply {
putString("arg", message)
}
}
}
Thông điệp chỉ ra rằng this
tham khảo bên apply()
điểm chức năng để BaseBundle
lớp đó là có sẵn từ API 21 mà sẽ sụp đổ vào API thấp hơn. Bundle#putString(key, value) chắc chắn có sẵn trên các phiên bản thấp hơn, nhưng có lỗi trong Android Studio 3.0-alpha8.
Vấn đề này khá kỳ lạ như tôi có thể thấy dịch ngược mã như này:
nào làm tham khảo Bundle
không loại một BaseBundle
.
Tại sao chúng ta có lỗi Lint ở vị trí đầu tiên?
làm thế nào bạn dịch ngược mã? – lelloman
@lelloman Tôi đã dựa vào Android Studio "Hiển thị Kotlin Bytecode". Có một nút "Biên dịch ngược" trong tab xuất hiện ở bên phải của ngăn Android Studio. Một cách khác là sử dụng "classyshark-bytecode-viewer", nhưng tôi chưa thử nó. –
cool thx! Tôi đã thử mã của bạn và tôi nhận thấy một điều, nếu tôi làm cho lớp TestKt mở rộng Xem, cảnh báo biến mất ..: \ – lelloman