public <T> boolean edit(T entity) 和public <T> T get(Class<T> c, Serializable id)中這兩種參數的定義和調用有什么區別?
public <T> boolean edit(T entity){ return true; } public <T> void get(Class<T> entity,Serializable id){ }
找到答案了:
Class 首先是個Class對象,描述的意思是構建T這個類型的模板
T 是個T對象,描述的意思是這個對象是T這個類型。
打個比方,T=人的時候,T a 表示的意思是:a=具體某個人,具體某個人可能是張三可能是李四……(好土);
Class a表示的意思是:a=人類,這個種族。有點近似其他語言的type的意思。
什么地方使用呢:你只能提供這個type卻沒辦法提供一個具體的實例的時候(你只能告訴賣家我要買蘋果卻不能拿一個蘋果給他看告訴它我要買這個東西的時候)。網上常見的例子就是利用反射實例化1個T對象...etc.