Class.newInstance()
来源:互联网 发布:淘宝返现在哪里查看 编辑:程序博客网 时间:2024/05/21 17:47
llegalAccessException 权限不足异常,构造方法的权限修饰符,private本类可以调用 默认权限,包访问权限;protected 包权限和子类访问权限 public公共访问权限
只有包含默认构造器(隐式的和显示的无参构造方法)的对象才能使用newInstance()方法。
但也会出现异常,当默认构造器访问权限不足(会报安全权限异常),基本类型.getClass().newInstance()会报实例化异常
package com.tkij.chapter14.Class;public class Toy {Toy(){};//默认构造器,如果不带默认构造器,则不能使用newInstance();创建对象。Toy(int i){};public static Toy getInstance(){return new Toy();}public void print(){System.out.println("你访问到我了!");}}package com.tkij.chapter14.Class.GeneralizationClass;public class GeneralizationClass {public static void createInstance(Class cc){try {System.out.println("类的名称:"+cc.getSimpleName());cc.newInstance();} catch (InstantiationException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalAccessException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public static void main(String[] args) {Class[] cs={Toy.class,Math.class,Integer.class,int.class,char[].class};for(Class cc:cs){createInstance(cc);}}}
上面的main方法中创建了Class数组,第一个元素Toy.class,由于Toy类和GeneralizationClass类不在同一个包内,而Toy的默认构造器是包访问权限,所以会出现访问权限异常,只有声明Toy类的默认构造器为public才会执行newInstance()方法。
第二个元素是Math.class,Math类的默认构造器也不可访问,也会报访问权限异常,而第三个元素包装类Integer.class,由于Integer类没有默认构造器,所以会报实例化对象异常,第四个元素int.class,由于int是基本类型,不是对象,也就没有构造器,所以会报实例化异常,第五个元素char[].class,char数组虽然是对象,但是也没有默认构造函数,所以会报实例化异常.
欢迎大家指正。
阅读全文
1 0
- Class.newInstance()
- Class.newInstance()
- Class.forName newInstance 介绍
- Class.forName(name).newInstance()
- java Class.forName("") .newInstance();
- class.forname().newInstance()
- Class.newInstance()学习
- Class.newInstance()学习
- class.forname().newInstance()
- java Class.forName("") .newInstance();
- Class.newInstance()学习
- Class.newInstance()学习
- new Class() 与 Class.newInstance()
- class.newInstance和constructor.newInstance 区别
- Class.newInstance与Constructor.newInstance对比
- 关于Class.forName(driverName).newInstance();
- Class.forName与newInstance方法
- java newInstance()和new Class()
- 线程池---ThreadPoolExecutor中corePoolSize,maximumPoolSize,workQueue的关系
- 最大连续子序列和
- 人脸识别算法初次了解
- oracleday08(桥直连)
- HTTP详解(二):HTTP报文格式
- Class.newInstance()
- C++ 实时获取CPU使用率的类 (源码)
- Apache简介
- Oracle12c 容灾切换完全步骤
- 运动目标算法跟踪综述
- CSS常见BUG/清除浮动/跨浏览器兼容/函数作用域/闭包
- word 里面插入 mathtype格式的公式,行间距变宽怎么办_
- django 认证系统
- C/C++获取操作系统、CPU、内存信息