参考:java.lang.ExceptionInInitializerError异常 - 面条啊Andrew - 博客园

下面程序运行会出现,如下的错误,因为在执行Map中的方法时,因此时MAP_TYPE2还没有初始化,此时无 MAP_TYPE2的变量,故会初始化异常。

初始化MAP_TYPE--2
java.lang.ExceptionInInitializerError
Caused by: java.lang.NullPointerException
    at com.stock.framework.precheck.test.Test$1.<init>(Test.java:49)
    at com.stock.framework.precheck.test.Test.<clinit>(Test.java:47)
Exception in thread "main" 
Process finished with exit code 1

//产生异常
public class Test{public static final Map<String, String> MAP_TYPE2 = new HashMap<String, String>() {{System.out.println("初始化MAP_TYPE--2");MAP_TYPE2.put("VB", "111");MAP_TYPE2.put("VS", "222");}};public static void main(String[] args){System.out.println(MAP_TYPE2);}
}

//产生异常public static final Map<String, String> MAP_TYPE2 = getMap();private static Map<String, String> getMap() {System.out.println("初始化MAP_TYPE--2");MAP_TYPE2.put("VB", "111");MAP_TYPE2.put("VS", "222");return MAP_TYPE2;}public static void main(String[] args){System.out.println(MAP_TYPE2);}

下面的方法,无异常:

//无异常
public class Test{public static final Map<String, String> MAP_TYPE = new HashMap<String, String>() {{System.out.println("初始化MAP_TYPE");put("VB", "111");put("VS", "222");}};public static void main(String[] args){System.out.println(MAP_TYPE);}
}

其他说明:

调用后:

初始化A
初始化B
初始化List
初始构造方法

package com.lang.ininitialException;import java.util.ArrayList;
import java.util.List;public class StaticParams {private static int NUM_A = getA();private static int NUM_B = getB();private static List<String> LIST_A = getListA();private StaticParams() {System.out.println("初始构造方法");}public static StaticParams getInstance() {return new StaticParams();}private static int getA(){System.out.println("初始化A");return 5;}private static int getB() {System.out.println("初始化B");return 10;}private static List<String> getListA() {System.out.println("初始化List");return new ArrayList<String>();}public static void main(String args[]){StaticParams.getInstance();}
}

java.lang.ExceptionInInitializerErrorCaused by: java.lang.NullPointerException相关推荐

  1. java.lang.exception_java.lang.RuntimeException和java.lang.Exception

    在查看java.lang.RuntimeException和java.lang.Exception类之间的区别之前,您必须知道Exception层次结构.两个类Exception和Error类都派生自 ...

  2. JAVA编译异常处理:java.lang.OutOfMemoryError: PermGen space

    JAVA编译异常处理:java.lang.OutOfMemoryError: PermGen space 参考文章: (1)JAVA编译异常处理:java.lang.OutOfMemoryError: ...

  3. 【异常】Caused by: java.lang.NoClassDefFoundError: org/aspectj/lang/annotation/Around

    [异常]Caused by: java.lang.NoClassDefFoundError: org/aspectj/lang/annotation/Around 参考文章: (1)[异常]Cause ...

  4. 如何解决java.lang.NoClassDefFoundError:Java 9中的javax / xml / bind / JAXBException

    本文翻译自:How to resolve java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException in Java 9 I have s ...

  5. 【错误记录】Android Studio 4.2.1 编译报错 ( 设置支持的 Java 和 Kotlin 版本 | java.lang.BootstrapMethodError )

    文章目录 一.报错信息 二.解决方案 一.报错信息 更新了 Android Studio 到 4.2.14.2.14.2.1 , 打开之前的老项目 , 部分界面是由 Kotlin 开发的 , 进入 K ...

  6. [Ljava.lang.String和java.lang.String区别

    [Ljava.lang.String和java.lang.String区别 注:[Ljava.lang.String@1b634e7  --     "[" 表示一维数组      ...

  7. MyBatis中提示:invalid comparison: java.util.LinkedHashMap and java.lang.String

    场景 在使用MyBatis传递多个参数并且传递的参数作为判断条件时提示: invalid comparison: java.util.LinkedHashMap and java.lang.Strin ...

  8. Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结

    导致OutOfMemoryError异常的常见原因有以下几种: 1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据: 2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收: 3.代码 ...

  9. matlab调用Java程序时出现 Java.lang.OutOfMemoryErrot: GC overhead limit exceeded

    matlab调用Java程序时出现 java.lang.OutOfMemoryError: GC overhead limit exceeded JDK1.6.0_37和JDK_1.7.0_60版本, ...

最新文章

  1. 测试角度的并发和幂等问题总结
  2. 信用评分卡模型的理论准备
  3. Mybatis报错 元素内容必须由格式正确的字符数据或标记组成
  4. python二元函数如何编写,如何用Python和sklearn编写多元对数回归?
  5. WebPart的Web部件页部署时发生错误--小窍门
  6. ARM中断分析之二:裸机下面的中断处理
  7. 【BZOJ3590】[Snoi2013]Quare 状压DP
  8. java 代码重排_Java中指令重排
  9. (转)量化投资大师采访摘录-詹姆斯·西蒙斯 James Simons
  10. python重新安装numpy_Python-如何重新安装NumPy
  11. SMB/CIFS--NetBOIS/Browser/NBNS 协议
  12. vue实现生成二维码与扫描二维码
  13. java take,Java DelayQueue take()用法及代码示例
  14. Linux系统ARM32(64位不同)体系内存分页(ARM没段寄存器,分页内存内核和进程共用一套,页目录基址是CP15 C2控制的TTBR0,没用TTBR1,二级表基址alloc获取
  15. ganache命令行安装
  16. 【EXP】函数使用技巧
  17. Yoga C930 NM-B741 EYG70 Ariel-SVT REV 1.0联想笔记本图纸
  18. Idea导包正确还是显示标红(错误)
  19. 第32节:Java中-构造函数,静态方法,继承,封装,多态,包
  20. kaldi:计算词错率(WER)

热门文章

  1. 优酷java_youtubie 仿优酷的视频网站,采用JAVA开发,支持Oracle数据库。主要功能包含注册登录, 上传 Jsp/Servlet 238万源代码下载- www.pudn.com...
  2. flask ajax 上传 图片,flask jQuery ajax 上传文件
  3. oracle vba 数组_vba 创建数据库
  4. Vue - 高效稳定的颜色选择器组件(支持鼠标拖动选择与手动输入16进制、rgb颜色值)
  5. 如何使用Chatgpt做论文降重呢?
  6. 用pygame实现网上游戏‘球球情侣‘(检测矩形和某颜色碰撞的例子)
  7. 华为鸿蒙苹果降价,果然,库克又杀回来了,华为鸿蒙一出来,iPhone就降价了
  8. 查表法解决十进制转换十六进制(Java)
  9. ESXI及WorkStation安装群晖NAS
  10. 远翔升压FP6291,输出12V内可调,最大功率5W