首页 > 编程语言 >无涯教程-Java泛型 - 不允许 数组

无涯教程-Java泛型 - 不允许 数组

时间:2023-12-28 20:34:30浏览次数:47  
标签:Box stringBoxes Java java 无涯 编译器 数组 泛型 new

不允许使用参数化类型的数组。

//无法创建 Box<Integer> 的通用数组
Box<Integer>[] arrayOfLists = new Box<Integer>[2]; 

由于编译器使用类型擦除,因此将type参数替换为对象,并且用户可以将任何类型的对象添加到数组中。并且在运行时,代码将无法引发ArrayStoreException。

//编译器错误,但如果允许
Object[] stringBoxes = new Box<String>[];
  
//OK
stringBoxes[0] = new Box<String>();  

//An ArrayStoreException should be thrown,
//but the runtime can't detect it.
stringBoxes[1] = new Box<Integer>();  

参考链接

https://www.learnfk.com/java-generics/java-generics-no-array.html

标签:Box,stringBoxes,Java,java,无涯,编译器,数组,泛型,new
From: https://blog.51cto.com/u_14033984/9018189

相关文章

  • 无涯教程-Java泛型 - 不允许 异常
    泛型类不允许直接或间接扩展Throwable类。//泛型类Box<T>可能不是java.lang.Throwable的子类classBox<T>extendsException{}//泛型类Box<T>可能不是java.lang.Throwable的子类classBox1<T>extendsThrowable{}不允许方法捕获类型参数的。publicstatic<T......
  • JAVA基础+安装
    Java特性高效可跨平台不占内存不需要指针Java三大版本Writeonce,runanywhere.JavaSE:标准版(桌面程序,控制台开发……)JavaME:嵌入式开发(手机,小家电……)JavaEE:E企业级开发(web端,服务器开发)JDK、JRE、JVMJDK:JavaDevelopmentKitJava开发者工具JRE:JavaRuntimeEnvi......
  • javaCC链2
    cc2链pom.xml配置<dependency><groupId>org.apache.commons</groupId><artifactId>commons-collections4</artifactId><version>4.0</version></dependency>......
  • 无涯教程-Java泛型 - 不允许 强制转换
    除非强制使用无界通配符对其进行参数化,否则不允许强制转换为参数化类型。Box<Integer>integerBox=newBox<Integer>();Box<Number>numberBox=newBox<Number>();//编译器错误:无法从Box<Number>转换为Box<Integer>integerBox=(Box<Integer>)numberBox;要实现相同的目的,......
  • Google Java 编程风格指南
    目录前言术语说明指南说明源文件基础文件名文件编码:UTF-8特殊字符空白字符特殊转义序列非ASCII字符源文件结构许可证或版权信息package语句import语句import不要使用通配符不要换行顺序和间距类声明只有一个顶级类声明类成员顺序重载:永不分离格式大括号使用大括号(即使大括号仅是......
  • Java的集合
    一.Java集合框架概述    一方面,面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储。另一方面,使用Array存储对象方面具有一些弊端,而Java集合就像一种容器,可以动态的把多个对象的引用放入容器中。1.数组Array存储(1)数组在内存存储方面的特......
  • Java多线程:数据一致性问题及解决方案
    引言在面向对象的编程语言Java中,多线程编程是一个强大的工具,可以使我们能够构建高效率和高并发的应用程序。然而,多线程环境下的数据共享也带来了数据一致性的挑战。在本文中,我们将探讨Java多线程中的数据一致性问题,并提出几种解决方案。数据一致性问题当多个线程同时对共享资源进行......
  • JavaWeb - Day13 - 事务管理、AOP(基础、进阶、案例)
    01.事务管理-事务回顾-spring事务管理1.1事务回顾在数据库阶段我们已学习过事务了,我们讲到:事务是一组操作的集合,它是一个不可分割的工作单位。事务会把所有的操作作为一个整体,一起向数据库提交或者是撤销操作请求。所以这组操作要么同时成功,要么同时失败。怎么样来控制这组......
  • Java-继承:重载与重写的区别
    一、重写(Override)子类继承父类,子类重写父类中的所有公共方法,覆盖父类的方法并对其重写。注意事项:重写前后方法名相同;参数列表相同;返回值相同子类重写的方法所抛出的异常必须与父类中的被重写方法的异常一致,或者不能比父类的异常范围更大。父类的私有方法不能被重写,如果子类非要......
  • Java服务jar包在Windows系统调用bat脚本启动,停止,重启jar包
    创建一个以bat后缀结束的文件,写入一下代码:1.启动jar包脚本:在Windows系统上面创建start.bat启动jar包脚本编辑以下内容:@echooff%1mshtavbscript:CreateObject("WScript.Shell").Run("%~s0::",0,FALSE)(window.close)&&exitjava-Xms256m-Xmx512m -Dfile.encoding=utf-......