private Map<Class<?>, Object> favorites = new HashMap<Class<?>, Object>();
public <T> void putFavorite(Class<T> type, T instance) {
//code to put the T Object in the Map
}
I saw this code in a talk from Joshua Bloch on UserGroupsAtGoogle
link: http://www.youtube.com/watch?v=V1vQf4qyMXg
I wonder what this <T> means in the method declaration of the putFavorite method.
I assume, this is not the return value, because this is already void.
You’re right, it’s not the return value, the
<T>is declaring a generic type namedTwhich will then be used in the signature of this method. For a client calling the method, they have to make sure the arguments they pass in satisfy the signature, such thatTis consistent across all arguments (and return value in some cases).Some valid ways to call the method would be:
etc..
See this page for a more detailed explanation.