Java:ListA.addAll(ListB)会触发NullPointerException吗?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java:ListA.addAll(ListB)会触发NullPointerException吗?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1127字,纯文字阅读大概需要2分钟。
内容图文
![Java:ListA.addAll(ListB)会触发NullPointerException吗?](/upload/InfoBanner/zyjiaocheng/765/8553d2913868475083240251e861eb5a.jpg)
错误的部分在代码中是大写的,它也在预告中.由于抽象列表,它无法初始化,声明在静态字段中.列表具有相同的类型.
import java.util.*;
public class Test
{
public static final List<String> highPrio = Arrays.asList("*","/");
public static List<String> ops;
public static void main(String[] args)
{
//ERROR HERE, why do it throw nullPointer?
ops.addAll(highPrio);
for(String s : ops)
{
System.out.println(s);
}
}
}
为什么不在初始化中使用新的List()?
不初始化的原因是无法使用= new List< String>().我看不到不允许它的逻辑.它必须与内在因素有关,例如数据结构或其他内容.
Test.java:7:java.util.List是抽象的;无法实例化
public static List< String> ops = new List< String>();
为什么列表是一个界面?
我知道许多数据结构如堆栈实现列表.但我无法理解为什么List是一个接口,为什么不以Table为例.我将list视为一个原始结构,您可以使用它来实现其他结构.接口是可以指定结构要求的东西.作为界面的原始性或广泛性的原因是什么?
解决方法:
因为ops为null. List是一个接口这一事实并不意味着你无法初始化该字段:
public static List<String> ops = new ArrayList<String>();
List是一个接口,因为有多种方法可以实现它,同时提供相同的合同(尽管性能特征不同).例如,ArrayList是数组支持的,而LinkedList是链表.
内容总结
以上是互联网集市为您收集整理的Java:ListA.addAll(ListB)会触发NullPointerException吗?全部内容,希望文章能够帮你解决Java:ListA.addAll(ListB)会触发NullPointerException吗?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。