黑马程序员技术交流社区
标题:
探讨一下为什么静态方法不允许访问定义在类上的泛型
[打印本页]
作者:
rover0321
时间:
2014-6-12 00:07
标题:
探讨一下为什么静态方法不允许访问定义在类上的泛型
如题,定义泛型类和泛型方法如下:
class Demo<T>
{
public static void funA(T t){} // 不允许
public static <Q> void funB(Q q){} // 允许
}
复制代码
听毕老师讲完泛型编程后对funA的定义错误很是疑惑。如果说由于泛型所表明的类型需要在实例化的时候才能确定,因此静态的方法无法访问变量t。那么为什么funB可以呢?Q的类型不也要在实例化的时候才能确定吗?该从哪个角度去理解呢?谢谢大家!
作者:
woshihq
时间:
2014-6-12 00:22
应该从内存上理解,当你调用funB方法的时候,它调用参数Q q,而q是传进去的参数,不是类里面的成员变量,前面<Q>,只是一种写法,没什么意义,只是声明Q是不知道是什么类型而已
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2