Duyệt qua Guava thư viện tôi nhìn thấy chữ ký kỳ lạ này trên một phương pháp readlines từ lớp Files:Java lạ generic trở lại loại
public static <T> T readLines(File file,
Charset charset,
LineProcessor<T> callback)
tôi biết một chút về Generics trong java, nhưng điều này bối rối tôi.
T kép có nghĩa là gì ở đây? Và tại sao người đầu tiên trong ngoặc nhọn?
CẬP NHẬT: Cảm ơn câu trả lời. Tôi vẫn chưa rõ tại sao tôi nên sử dụng T bên trong dấu ngoặc đơn. Tại sao ví dụ có thể không nó chỉ là:
public static <> T readLines()
hoặc
pulibc static <K> T readLines()
Hay cú pháp java dictate rằng bức thư CÙNG phải được sử dụng?
Bây giờ this thậm chí còn wierder:
static <T> void fromArrayToCollection(T[] a, Collection<T> c) {
làm thế nào một phương pháp có thể có một kiểu generic-lợi nhuận và không có giá trị?
Dấu T trong ngoặc vuông KHÔNG phải là loại trả về; đó là tham số kiểu cho phương thức. –
Lưu ý rằng nếu không có trong các chữ ký trên, trình biên dịch sẽ tự nhiên mong muốn tìm "lớp T {...}" được định nghĩa ở đâu đó. Một cái gì đó đã thông báo cho trình biên dịch mà bạn muốn có một tham số * loại * được gọi là T. Và đây là cách. –