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
}
Run Code Online (Sandbox Code Playgroud)
我在Joshua Bloch的UserGroupsAtGoogle
链接上看到了这段代码:http://www.youtube.com/watch?v = V1vQf4qyMXg
我想知道这<T>
在方法的方法声明中意味着什么putFavorite
.
我假设,这不是返回值,因为这已经是void
.
ggr*_*ner 10
你是对的,它不是返回值,<T>
是声明一个名为的泛型类型T
,然后将在此方法的签名中使用.对于调用该方法的客户端,他们必须确保它们传入的参数满足签名,这样T
在所有参数中都是一致的(并且在某些情况下返回值).
调用该方法的一些有效方法是:
putFavorite(String.class, "Some string");
putFavorite(Integer.class, Integer.valueOf(1234));
putFavorite(SomeClass.class, new SomeClass());
Run Code Online (Sandbox Code Playgroud)
等等..
有关更详细的说明,请参阅此页面.