2012-02-19 21 views
6

Tôi muốn biết những gì <T> đầu tiên thể hiện trong dòng mã Java sau. Tôi đã đọc một số hướng dẫn về generics nhưng không ai trong số các ví dụ có 2 generics trước khi tên phương pháp. Cảm ơn.Ý nghĩa của việc sử dụng Java Generics này là gì?

public <T> Provider<T> scope(Key<T> key, Provider<T> unscoped); 
+0

Có, tôi cũng không hiểu chữ ký chung của phương thức. – MJM

Trả lời

13

Các <T> đầu tiên là khai báo kiểu tham số thực tế, tức là nó nói rằng phương pháp này là chung chung và có một tham số kiểu T.

Thứ hai <T> chỉ đơn giản là một phần của kiểu trả về của phương thức, tức là phương thức trả về một Provider<T>.

Nếu loại bỏ <T> đầu tiên, loại trả về Provider<T> sẽ không hợp lệ, vì T sẽ không phải là tên/tên nhận dạng được công nhận cho một loại. T chỉ được công nhận là loại vì <T> đầu tiên giới thiệu nó như vậy.

+0

vẫn còn tôi không biết lợi ích của đầu tiên trong phương pháp chữ ký. – MJM

+0

Vì vậy, nếu phương pháp được sử dụng nhiều hơn một tham số loại, nói T2, nó sẽ trông như thế này? 'Công Provider phạm vi (Key chìa khóa, cung cấp unscoped, một cái gì đó); ' –

+3

số Nó sẽ trông như' công Provider phạm vi (Key chìa khóa, cung cấp unscoped, T2 một cái gì đó); ' –

Các vấn đề liên quan