开发者社区> 问答> 正文

这个代码我很疑惑啊。。?报错

下面这段代码为啥上面一句可以,但是下面一句会报错,很疑惑啊,难道asList不会做强制转化?

package test;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

public class ByteSet {
	Byte[] possibles = {1,2,3,4,5,6};
	Set<Byte> mySet = new HashSet<Byte>(Arrays.asList(possibles));
	Set<Byte> mySet1 = new HashSet<Byte>(Arrays.<Byte>asList(1,2,3,4,5,6));
}

展开
收起
爱吃鱼的程序员 2020-06-22 10:49:31 402 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    Arrays.<Byte>asList(1,2,3,4,5,6)java好像没见过只有的写法

    少了个大括号吧

    ew  HashSet<Byte>(Arrays.<Byte>asList({1,2,3,4,5,6}));

    因为范型没那么智能,这中间的转换太多了

    Arrays.<Byte>asList((byte)1,(byte)2,(byte)3,(byte)4,(byte)5,(byte)6)或者 Arrays.asList((byte)1,(byte)2,(byte)3,(byte)4,(byte)5,(byte)6)






    回复 @meisme:是的,不过我是上海公司的,目前在南京总部出差因为1,2,3,4,5,6被编译器认为是int,它不会做int到byte的downcast,只会自动做upcast你也在赛特斯??我刚从那里实习回来。。。

    x.<x>x() 在方法前面加强制转换没这种语法啊。。。

    有的,在调用泛型方法时可以显示的提示编译器用什么类型替换泛型,你在IDE中试一下就知道了,好多时候我们不写是因为编译器可以根据传递的参数猜出来
    2020-06-22 10:49:49
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
《0代码搭应用》 立即下载
不止代码 立即下载
Android插件化-从入门到"放弃" 立即下载