A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

如题,定义泛型类和泛型方法如下:
  1. class Demo<T>
  2. {
  3.     public static void funA(T t){} // 不允许
  4.    
  5.     public static <Q> void funB(Q q){} // 允许
  6. }
复制代码
听毕老师讲完泛型编程后对funA的定义错误很是疑惑。如果说由于泛型所表明的类型需要在实例化的时候才能确定,因此静态的方法无法访问变量t。那么为什么funB可以呢?Q的类型不也要在实例化的时候才能确定吗?该从哪个角度去理解呢?谢谢大家!

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

1 个回复

倒序浏览
应该从内存上理解,当你调用funB方法的时候,它调用参数Q q,而q是传进去的参数,不是类里面的成员变量,前面<Q>,只是一种写法,没什么意义,只是声明Q是不知道是什么类型而已

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马