kuilab_com 发表于 2016-01-19 09:16

果然Java的数组语法有缺陷么。new <T>[]{} 不能

本帖最后由 kuilab_com 于 2016-01-19 09:18 编辑

protected static <T> T[] makeArr( Class<T> cla, int len ){
        return new cla ;//编译错误:cla cannot be resolved to a type
}需求是根据运行时某对象的类型,创建出相同类型的数组。
代码中的"new cla"如果改为"new T"
则不止报“ cla cannot be resolved to a type ”
还报“ Cannot create a generic array of T ”

众所周知,Java中的Array类是不提供一个Class来描述的,
它只能由"new 类型"语法上加一个"[]"来表示创建数组,
不提供我所需要的以类型为参数的构造函数,哪怕是封装的,
比如Arrays.creatArray( Class<?> type, int len );
而我也不能将需要的数组改为List,这个理由就不赘述了。
请各位高人指点。

yjh777 发表于 2016-03-11 10:43

不会Java,没有类似c的内存分配机制吗?

yjh777 发表于 2016-03-11 10:57

帮你搜到这个:

Object array = Array.newInstance(componentType, length);

kuilab_com 发表于 2016-05-24 10:49

回复 3# yjh777
oh~great. you are so kidly. let's make frends! i've flowed your github account.

patagonia2 发表于 2016-05-24 18:07

本帖最后由 patagonia2 于 2016-05-24 18:10 编辑

我倒是觉得JAVA冗长的语法让我很烦躁

yjh777 发表于 2016-05-26 10:03

kuilab_com 发表于 2016-05-24 10:49 static/image/common/back.gif
回复 3# yjh777
oh~great. you are so kidly. let's make frends! i've flowed your github account.

收到 :D

工作上不用,Java 都忘光了。
页: [1]
查看完整版本: 果然Java的数组语法有缺陷么。new <T>[]{} 不能