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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Jpor 中级黑马   /  2014-7-24 09:19  /  1739 人查看  /  26 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

视频里泛型一般都是集合或定义方法上的参数适用,数组上可以吗

26 个回复

倒序浏览
不可以,泛型是针对引用型数据的!数组中一般是基本数据类型,所以数组是没有泛型的
回复 使用道具 举报
idency 发表于 2014-7-24 09:45
不可以,泛型是针对引用型数据的!数组中一般是基本数据类型,所以数组是没有泛型的 ...

有同学说能通过反射来实现

在反射那找了几遍都没看到,是反射技术开发框架原理的延伸吗?
回复 使用道具 举报
Jpor 发表于 2014-7-24 09:55
有同学说能通过反射来实现

在反射那找了几遍都没看到,是反射技术开发框架原理的延伸吗? ...

额,通过反射给数组加泛型我还真的不清楚,没听说过啊:L 反射应该不是开发框架的延伸,应该属于框架的基础更合适!

点评

点评+个黑马币,谢谢了  发表于 2014-7-24 10:11
回复 使用道具 举报
idency 发表于 2014-7-24 10:00
额,通过反射给数组加泛型我还真的不清楚,没听说过啊 反射应该不是开发框架的延伸,应该属于框架的基础更 ...

恩,我也是没头绪,还是谢谢了

开发框架那就了解能用反射来获取以后的类,不知道数组定义泛型的思路是否这样来的
回复 使用道具 举报
Jpor 发表于 2014-7-24 09:55
有同学说能通过反射来实现

在反射那找了几遍都没看到,是反射技术开发框架原理的延伸吗? ...

数组应该是可以的,你写一个一维和二维数组的Class对象相等性比较,用1.6以上的jdk编译会出错,出错信息中就包含? extends int[]
回复 使用道具 举报
数组 用得着吗  ....
回复 使用道具 举报
Jpor 中级黑马 2014-7-24 10:26:03
8#
fantacyleo 发表于 2014-7-24 10:12
数组应该是可以的,你写一个一维和二维数组的Class对象相等性比较,用1.6以上的jdk编译会出错,出错信息 ...

验证通过的话,具体应该如何定义,求大大解答
回复 使用道具 举报
Jpor 中级黑马 2014-7-24 10:27:49
9#

我也是没用到过。。碰上就尽量去解决下好了
回复 使用道具 举报
Jpor 发表于 2014-7-24 10:26
验证通过的话,具体应该如何定义,求大大解答

我正看到数组反射的视频,看完后告诉你哈

点评

3Q  发表于 2014-7-24 10:56
回复 使用道具 举报
本帖最后由 掌柜的--刘饮 于 2014-7-24 12:33 编辑

数组反射  张老师  高新技术里面有讲到java.lang.reflect.Array
回复 使用道具 举报
Jpor 发表于 2014-7-24 10:26
验证通过的话,具体应该如何定义,求大大解答

先问一下,你说的数组定泛型是指:ArrayList<String>[] as = new ArrayList<String>[10]这种形式么?
回复 使用道具 举报
Jpor 中级黑马 2014-7-24 13:03:32
13#
fantacyleo 发表于 2014-7-24 12:58
先问一下,你说的数组定泛型是指:ArrayList[] as = new ArrayList[10]这种形式么? ...

ArrayList是集合,集合本身就能直接定义泛型的

这里问的是arr,形式不对的
回复 使用道具 举报
Jpor 发表于 2014-7-24 13:03
ArrayList是集合,集合本身就能直接定义泛型的

这里问的是arr,形式不对的 ...

额,那是指什么形式的?你写一个例子
回复 使用道具 举报
数组里面定义泛型 ?你主要是做什么啊

点评

面试貌似有提到过- -~  发表于 2014-7-24 16:45
回复 使用道具 举报
泛型是在集合上操作的吧

点评

恩,泛型一般是在集合上,不过数组也能用貌似,很麻烦  发表于 2014-7-24 16:47
回复 使用道具 举报
不用想肯定不行,数组怎么定义?   int[] x = new int[10]     你还想给什么类型?不是都定好了么?

点评

后面高新技术部分会有讲到的,反射方法和自定义泛型  发表于 2014-7-24 16:50
回复 使用道具 举报
Jpor 中级黑马 2014-7-24 16:39:47
18#
fantacyleo 发表于 2014-7-24 13:26
额,那是指什么形式的?你写一个例子

我想的是通过集合来操作好了

先把数组转成集合:

List<String> list = Arrays.asList(arr);//这里<String>就可以改成我们所需要的类型

然后在把集合转成数组,用toArray();


如果用反射的话,只能先获取数组自身的实际类型参数,看张老的视频里难度很高~
然后再用自定义泛型的方法转换俩个数组间的参数类型
具体见:
41_张孝祥Java高新技术_自定义泛型方法的练习与类型推断总结   //转换类型
43_张孝祥Java高新技术_通过反射获得泛型的实际类型参数         //获取泛型
回复 使用道具 举报
Jpor 中级黑马 2014-7-24 16:43:57
19#
掌柜的--刘饮 发表于 2014-7-24 12:31
数组反射  张老师  高新技术里面有讲到java.lang.reflect.Array

恩,25_张孝祥Java高新技术_数组的反射应用,这里是指集合数组元素的反射取出,还没涉及泛型

还是谢谢了
回复 使用道具 举报
Jpor 发表于 2014-7-24 16:39
我想的是通过集合来操作好了

先把数组转成集合:

好吧,我知道你想干嘛了。就是Student[] 转成Person[]这种子父类数组转换对吧。除了基本类型,你的方法确实可行
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马