【坑】不要使用各种框架提供的内部List

为了代码简洁有时我们会使用一些框架提供的工具类。如

import org.apache.commons.collections.ListUtils;
package java.util.Collections;

 List<String> strList = ListUtils.EMPTY_LIST;

List<String> strList1 = Collections.emptyList();

实际该空List是个内部类,没有实现add等方法,使用时会报错。


 /**
    * {@inheritDoc}
    *
    * <p>This implementation always throws an
    * {@code UnsupportedOperationException}.
    *
    * @throws UnsupportedOperationException {@inheritDoc}
    * @throws ClassCastException            {@inheritDoc}
    * @throws NullPointerException          {@inheritDoc}
    * @throws IllegalArgumentException      {@inheritDoc}
    * @throws IndexOutOfBoundsException     {@inheritDoc}
    */
   public void add(int index, E element) {
       throw new UnsupportedOperationException();
   }

又如,使用

arrays.aslist(T...a)

再进行add操作,同样会报该错。
https://www.2cto.com/kf/201806/751606.html

因此,还是老老实实使用下面方式初始化List

List<String> strList=new ArrayList<>();

或者确认工具类提供的是java的ArrayList再使用。

原文地址:https://www.cnblogs.com/z00377750/p/10809006.html

时间: 2024-07-30 15:50:16

【坑】不要使用各种框架提供的内部List的相关文章

未找到具有固定名称&ldquo;System.Data.SQLite&rdquo;的 ADO.NET 提供程序的实体框架提供程序

用户代码未处理 System.InvalidOperationException   HResult=-2146233079   Message=未找到具有固定名称"System.Data.SQLite"的 ADO.NET 提供程序的实体框架提供程序.请确保在应用程序配置文件的"entityFramework"节中注册了该提供程序.有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=260882.   Source=E

07-使用框架提供的自动建表(没有提供配置文件)

4.2  使用activiti框架自动建表功能 框架提供了和hibernate类似的自动建表功能. 搭建开发环境: 第一步:创建一个web(我们这个框架不是必须依赖tomcat这个容器才可以运行)/java项目activiti1110,如果它是一个struts框架,那就必须创建一个web项目(struts是表现层的一个框架,需要web容器提供支持) 可以使用例子项目的JAR包(不必吝啬) Build Path->Add to Build Path的效果是把JAR包加入构建路径里面,其实就是把JA

06-使用框架提供的建表语句创建数据库表

4.    初始化表结构 4.1  使用activiti框架提供的建表语句 * 第一步:获得建表语句 *  第二步:创建一个数据库 * 第三步:进入当前数据库中 4.2  使用activiti框架的自动建表功能  类似于我们学过的hibernate,它可以自动建表 hbm2ddl.auto = update

010. 使用.net框架提供的属性

C#允许在类和类成员上声明特性(类), 可在运行时解释类和类的成员. 这个特性也称为属性, 使用Attribute.下面演示如何使用.net框架提供的属性. 1 using System; 2 using System.Reflection; 3 public partial class _Default : System.Web.UI.Page 4 { 5 //自定义属性类 6 [AttributeUsage(AttributeTargets.Class, AllowMultiple = tr

无法为具有固定名称“System.Data.SqlClient”的 ADO.NET 提供程序加载在应用程序配置文件中注册的实体框架提供程序类型“System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer”。请确保使用限定程序集的名称且该程序集对运行的应用程序可用。有关详细信息,请参阅 http://go.m

Windows服务中程序发布之后会如下错误: 无法为具有固定名称"System.Data.SqlClient"的 ADO.NET 提供程序加载在应用程序配置文件中注册的实体框架提供程序类型"System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer".请确保使用限定程序集的名称且该程序集对运行的应用程序可用.有关详细信息,请参阅 http://go.microsoft.com

对比React Native、dcloud、LuaView三个框架技术(内部)

转载自:http://www.jianshu.com/p/ee1cdb33db8d主要对比React Native和5+SDK(就是dcloud的SDK)两个: 开发语言:三个都是用其他语言来统一开发IOS.android应用的框架技术,其中,React Native是使用纯JS,5+SDK是使用JS和html,LuaView则是使用lua语言,三者都是使用css或者类css布局,这点都很像,三者都可以使用原生(IOS.android)语言做一部分功能,比如有特殊性能要求的地方,就使用原生代码写

ReactNative: 了解ReactNative框架提供的全部内容

在RN开发中,ReactNative框架中提供了大量的API.组件以及插件等提供开发者使用,在前面已经大概介绍了一些.详情的内容如下所示. 1.组件部分: // Components get AccessibilityInfo() { return require('AccessibilityInfo'); }, get ActivityIndicator() { return require('ActivityIndicator'); }, get ART() { return require

Hibernate框架提供了5种检索对象的方式

 1.导航对象图检索方式:根据已经加载的对象导航到其他对象      2.OID检索方式:按照对象的OID来检索对象      3.HQL检索方式:使用面向对象的HQL查询语言      4.QBC检索方式:使用QBC(Query By Criteria)API来检索对象,这种API封装了基于字符串形式的查询语句,提供了更加面向对象的查询接口      5.本地SQL检索方式:使用本地数据库的SQL查询语句 什么是Criteria Criteria是一种比hql更面向对象的查询方式.Criter

iOS开发遇到的坑之三--使用asi框架在xcode下正常运行,但是打包时却不能进行网络访问

前言: 前两篇博客遇到的问题是前几天在实验室开发的时候遇到的,花了两三天时间在上面,今天突然心血来潮,想把这些”坑”写下来,所以才有了这两篇写的很丑的博客随笔 今天在开发时又遇到一个问题,那就是标题所述: 用ASIHttprequest类做的网络请求  在模拟器和真机上都有请求,但是打包成IPA包放在真机上,ASI没有请求 状态栏菊花也没有 ,直接用xcode编译,也可以请求 编译archive正常通过后,发布到测试平台,手机进行安装后发现不能使用网络,不管是wifi还是流量,都不能进行正常的网