返回列表 发帖

[疯狂Java讲义] 《疯狂java讲义》中泛型问题请教

在《疯狂java讲义》第883页,最上面,讲反射和泛型时,有如下代码,有一处地方,看来看去还不是很理解,特来请教站长和各位朋友了
在如下代码中

public static <T>  T  getInstance(Class<T> cls)

我看了很久,对这里,为什么要加上 <T> ,不是很理解。。
为什么不能写成
  1. public static   T  getInstance(Class<T> cls)
复制代码



完整代码如下
  1. public class YeekuObjectFactory2
  2. {
  3. public static <T> T getInstance(Class<T> cls)
  4. {
  5.   try
  6.   {
  7.    return cls.newInstance();
  8.   }
  9.   catch(Exception e)
  10.   {
  11.    e.printStackTrace();
  12.    return null;
  13.   }
  14. }
  15. public static void main(String[] args)
  16. {
  17.   //获取实例后无需类型转换
  18.   Date d = YeekuObjectFactory2.getInstance(Date.class);
  19.   JFrame f = YeekuObjectFactory2.getInstance(JFrame.class);
  20. }
  21. }
复制代码

提问赏金:6金币
获奖名单 : 还未派发赏金
成功的人不是赢在起点,而是赢在转折点!

哦哦,请教的好几个帖子,怎么都是石沉大海啊。。。
有些问题,是会者不难,不会者难啊。。。
成功的人不是赢在起点,而是赢在转折点!

TOP

成功的人不是赢在起点,而是赢在转折点!

TOP

  1. public static <T>  T  getInstance(Class<T> cls)
复制代码
这个<T> 的问题?这个Java语法规定的吧。无法解释吧。

Java的泛型方法语法就是这样定义的,我记得李老师的《疯狂Java讲义》上专门有泛型方法的介绍。
不要跟我说"对不起"!
如果"对不起"有用,那还要监狱做什么?

TOP

<T> 相当于告诉编译器我声明了一个泛型类型 T
例如代码:public static   T  getInstance(Class<T> cls)
T 只是方法的返回类型,但是这个类型你如果没有声明的话,就是个不可用类型,编译是不会通过的
牛X的不是技术,是人

TOP

返回列表