看泛型时遇到一个问题求解答

问题描述

代码1:publicclassTest{publicstaticvoidmain(Stringargs[]){fun(12313213,"sfsfsf").print();}publicstatic<V>Info<V>fun(Vv1,Vv2){Info<V>temp=newInfo<V>();temp.setVar(v1);temp.setVal(v2);returntemp;}}classInfo<T>{privateTvar;privateTval;publicvoidsetVar(Tvar){this.var=var;}publicvoidsetVal(Tval){this.val=val;}publicTgetVar(){returnthis.var;}publicTgetVal(){returnthis.val;}publicvoidprint(){System.out.println(this.var+"t"+this.val);}}代码2:publicclassTest{publicstaticvoidmain(Stringargs[]){fun().setVar("sfasfa",123123);}publicstatic<V>Info<V>fun(){Info<V>temp=newInfo<V>();returntemp;}}classInfo<T>{privateTvar;privateTval;publicvoidsetVar(Tvar,Tval){this.var=var;this.val=val;System.out.println(var+"t"+val);}publicTgetVar(){returnthis.var;}}两段代码均可以打印出来一个int,一个String。但是在代码1中,fun(Vv1,Vv2)明明是要一样的类型的,怎么会编译通过呢?

解决方案

解决方案二:
int会调用autoboxing机制转换为Integer,然后Integer和String两种类型自动向上转型为Object,在Java中,一切类皆由Object派生。所以在这个泛型里的V,你可以理解为Object,但是v1、v2的运行时类型信息分别为Integer和String。
解决方案三:
你使用的并不是int这个基本数据类型,实际是java虚拟机将123123自动转换成了Integer这个对象,应为所有的对象都继承自object,所以只是把String和Integer当作两个对象来处理。

时间: 2024-11-20 16:24:08

看泛型时遇到一个问题求解答的相关文章

bigbluebutton-哪位大神了解bigbulebutton,小弟遇到一个难题求解答

问题描述 哪位大神了解bigbulebutton,小弟遇到一个难题求解答 小弟最近碰到一个问题,有个客户自己在ubuntu14.04上安装的bigbluebutton总是报webrtc echo test failed,因为客户那边用的是mac,所以一开始以为是浏览器不支持,但换了别的浏览器以后一样报错,错误代码还根据不同的浏览器会变化.请问这种问题如何解决? 解决方案 http://docs.bigbluebutton.org/install/install.html 看下后面的排错部分

pfring linux-安装pfring的 Libpfring 库时遇到错误,求解答

问题描述 安装pfring的 Libpfring 库时遇到错误,求解答 解决方案 汇编器或者编译器的问题.看下你交叉编译的目标平台是什么 http://blog.sina.com.cn/s/blog_4c451e0e0101bw9o.html

深度学习-使用caffe时遇到问题,求解答!

问题描述 使用caffe时遇到问题,求解答! 在将数据格式转换成leveldb时运行这个脚本怎么出现not found呢? 解决方案 http://www.tuicool.com/articles/JBbQZfI

用cxf写的webservice在调用时出现以下错误求解答,求帮助

问题描述 用cxf写的webservice在调用时出现以下错误求解答,求帮助 Unmarshalling Error: 意外的元素 (uri:"http://hui.cxf.www/", local:"say").所需元素为<{}say> 解决方案 你的xml或者json不标准,检查下特殊符号有没有转义,有没有获取完全,编码是否正确等.

使用poi导出excel时碰到hyperLink连接过长时数组越界,求解答

问题描述 packagecom.test;importjava.io.File;importjava.io.FileOutputStream;importcom.test.lib.*;publicclassTestPoi{publicstaticvoidmain(String[]args){try{HSSFWorkbookwb=newHSSFWorkbook();HSSFSheetsheet=wb.createSheet("testPoi");wb.setSheetName(0,&qu

java-在用Struts2下载时,下载的文件不是我想要的文件,是一个.action文件,求解答

问题描述 在用Struts2下载时,下载的文件不是我想要的文件,是一个.action文件,求解答 这是配置文件 inputStreamattachment;filename=""${fileName}""4096 这是ACTION public class DownloadAction{ private String fileName;public void setFileName(String fileName) { this.fileName = fileNam

使用急求解答!C++和MFC画一个界面,调试时界面虽然出现,但是无反应

问题描述 使用急求解答!C++和MFC画一个界面,调试时界面虽然出现,但是无反应 小弟使用C++,用MFC画出了一个界面,使用VS中的"生成"显示生成成功,但是使用"调试"按钮时,我用MFC所画的界面虽然出来了,但是上面的所有按钮点击都没反应,界面也是完全卡死的状态,我在初始化部分打了断点,发现逐步运行时,运行到只能显示反汇编的,然后再运行几下,就发现显示无法在运行中调试.VS中的"模块"界面显示第一个还能加载符号,第二个就不行了,这是什么问题呢

文件系统-这有一个Linux中我看不懂的问题,详情 看描述 求解答

问题描述 这有一个Linux中我看不懂的问题,详情 看描述 求解答 当某部主机上的 Linux 由于某些原因而无法正常进入系统时,除了可以使用 Rescue 模式进行援救之外,还可以将其硬盘挂载到另外一台主机,从而将其中重要的数据备份出来,但不管是哪种方法,我们可能都需要进入到被援救的 Linux 系统中执行某些特定指令,假设被救援的文件系统被挂载到 /mnt/sysimage,进入该 Linux 环境的指令是 解决方案 参考:http://jingyan.baidu.com/article/6

泛型-一个继承的问题,求解答。

问题描述 一个继承的问题,求解答. package 泛型限定; public class Person { private String name; public Person() { // TODO Auto-generated constructor stub } public Person(String name) { super(); this.name = name; } public String getName() { return name; } public void setN