java - What is the use of recursive type bound in this case -


i have following piece of code

public static <t extends comparable<t>> t max(list<t> list){     iterator<t> iter = list.iterator();     ...     // code finding max element in list     ...  } 

my question is, need recursive type bound in case? far understanding, t extends comparable < t > means that, t can compared t itself. comes fact that, class 't' implements comparable<t> , so,

class myclass implements comparable<myclass>{ } 

if wrong here, feel free correct me.

so coming actual doubt, why need specify < t extends comparable < t > > ? ways argument list<t> list going contain elements of same type. i.e., suppose pass parameter of type list < myclass2 > , elements going of same type, i.e. myclass2..

so implication of recursive type bound? in advance.

why need specify <t extends comparable<t>>? because comparable not require implementing class comparable itself. in theory write like

class circle extends shape implements comparable<integer> {     ... } 

since comparable not make restriction, have on end when writing function. however, given bound more restrictive need be. make call

public static <t extends comparable<? super t>> t max(list<t> list) {     ... } 

that mean t comparable superclass of itself. reason want given in fruit example of rgettman. t still comparable itself, comparable not have defined respect t itself.


Comments

Popular posts from this blog

jquery - How can I dynamically add a browser tab? -

node.js - Getting the socket id,user id pair of a logged in user(s) -

keyboard - C++ GetAsyncKeyState alternative -