Làm thế nào từ khóa **reifi...
Làm thế nào từ khóa **reifi...
Trong Kotlin, từ khóa reified
được sử dụng kết hợp với từ khóa inline
để cho phép thông tin về kiểu dữ liệu được giữ lại và có sẵn tại thời gian chạy cho một số hàm generic. Bình thường, do cơ chế xóa kiểu (type erasure) áp dụng cho các kiểu generic trong Kotlin (và Java), thông tin về kiểu dữ liệu cụ thể được sử dụng khi gọi một hàm generic không được giữ lại sau khi biên dịch. Điều này hạn chế khả năng thực hiện một số thao tác như kiểm tra kiểu dữ liệu hoặc ép kiểu trong thân hàm generic.
Tuy nhiên, khi một hàm được đánh dấu là inline
và sử dụng từ khóa reified
với tham số kiểu của mình, Kotlin cho phép bạn truy cập trực tiếp vào kiểu dữ liệu cụ thể đó trong thân hàm. Điều này mở ra khả năng thực hiện các thao tác dựa trên kiểu dữ liệu tại thời gian chạy mà không cần phải truyền một đối tượng Class
làm tham số hoặc sử dụng phản xạ.
Ví dụ, bạn có thể sử dụng reified
để viết một hàm kiểm tra xem một đối tượng có phải là một thể hiện của một kiểu dữ liệu cụ thể hay không, hoặc để trả về một thể hiện của kiểu dữ liệu đó mà không cần phải truyền thêm thông tin kiểu dữ liệu khi gọi hàm.
inline fun <reified T> isOfType(value: Any): Boolean {
return value is T
}
Trong ví dụ trên, hàm isOfType
sử dụng reified
để kiểm tra xem đối tượng value
có phải là thể hiện của kiểu T
hay không. Nhờ reified
, bạn có thể gọi hàm này với kiểu dữ liệu cụ thể mà không cần phải truyền một đối tượng Class
làm tham số[1][2][3][4].
Tóm lại, từ khóa reified
trong Kotlin giúp làm việc với các kiểu generic trở nên linh hoạt và ...
expert
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào