Java 面向对象 - 触发类的初始化,执行其中的 static 块(包含不会触发初始化的情况)
触发类的初始化执行其中的 static 块访问 static 字段publicclassSomeClass{static{System.out.println(static block executed);}publicstaticintnum100;}intnumSomeClass.num;访问 static 方法可以使用空方法推荐publicclassSomeClass{static{System.out.println(static block executed);}publicstaticvoidinit(){}}SomeClass.init();创建实例publicclassSomeClass{static{System.out.println(static block executed);}}SomeClasssomeClassnewSomeClass();使用Class.forName()加载类try{Class.forName(com.my.SomeClass);}catch(ClassNotFoundExceptione){e.printStackTrace();}不会触发初始化的情况访问.classpublicclassSomeClass{static{System.out.println(static block executed);}}Class?clazzSomeClass.class;访问编译期常量static final 基本类型或 static final StringpublicclassSomeClass{static{System.out.println(static block executed);}publicstaticfinalintnum100;publicstaticfinalStringstrhello world;}intnumSomeClass.num;StringstrSomeClass.str;访问非编译期常量可以触发类的初始化publicclassSomeClass{static{System.out.println(static block executed);}publicstaticfinalObjecttokennewObject();}ObjecttokenSomeClass.token;
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2635281.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!