黑马程序员技术交流社区
标题:
自定义泛型问题。
[打印本页]
作者:
钟伟杰
时间:
2013-4-24 16:06
标题:
自定义泛型问题。
本帖最后由 钟伟杰 于 2013-4-25 01:18 编辑
class Demo3<T> //自定义泛型类Demo3,接收类型T
{
public <T> void show(T t) //接收类型T
{
System.out.println("show:"+t);
}
public <M> void print(M m) //接收类型M
{
System.out.println("print:"+m);
}
}
class Test
{
public static void main(String[] args)
{
Demo3<String> d3 = new Demo3<String>();
d3.show("java");
d3.show(4);
d3.print("java");
d3.print(5);
}
}
运行结果:show:java
show:4
print:java
print:5
问题:主函数中创建自定义泛型类对象时已经明确了类型是String,那么show方法应该只能接收String类型的,
怎么d.show(4)的时候还能正常运行呢?
1.jpg
(4.17 KB, 下载次数: 11)
下载附件
2013-4-24 16:01 上传
作者:
JavaUtil
时间:
2013-4-24 16:23
根据你的问题,你这里的类虽然声明了范型,但你的方法又从新声明了一次。
所以调用按照方法的声明为准。如果你只是要求和类的声明一致,这里的方法声明你应该改成
: public void show(T t) //接收类型T
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2