`
guzizai2007
  • 浏览: 359599 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java.lang.InstantiationException: at java.lang.Class.newInstance(Unknown Source)

 
阅读更多
Class cla = Class.forName("com.sxit.Object01");
Object01 o2 = (Object01) cla.newInstance();//此处抛出异常

 异常信息:

java.lang.InstantiationException: com.sxit.Object01
	at java.lang.Class.newInstance0(Unknown Source)
	at java.lang.Class.newInstance(Unknown Source)
	at com.sxit.Object01.main(Object01.java:62)

原因:

debug之后,发现cla.newInstance()的时候,在Class类内部685行会执行以下代码:
arrayOfConstructor = getDeclaredConstructors0(paramBoolean);
这里paramBoolean参数是false,该方法是用来获取该类的无参构造函数,如果没有则返回值为null,继而抛出初始化异常。

 解决办法:

类中加上一个无参构造函数
public Object01(){

}

 

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    java.lang.InstantiationException(解决方案).md

    项目中碰到的,记录一下解决方案

    Java语言的动态属性总结[参考].pdf

    1. **Java.lang.Class**: 这个类提供了关于Java类的元数据信息,如构造函数、字段、方法和注解。通过`Class`对象,我们可以获取到类的各种信息并进行反射操作。 2. **Java.lang.reflect.AccessibleObject**: `Field...

    反射.docx

    - `newInstance()`:调用默认构造器创建一个新的类实例,如果没有无参构造器,会抛出`InstantiationException`。 - `getName()`:返回类的全名,包括包名。 - `getInterfaces()`:获取类实现的所有接口。 - `...

    java反射详解

    - 如果目标类没有无参构造函数,尝试使用`newInstance()`会抛出`InstantiationException`。 - 为了解决这个问题,我们需要提供一个无参构造函数,或者使用`Constructor`来显式指定一个构造函数。 ##### 案例4:通过...

    JAVA反射机制-Class类-Class对象的获取.pdf

    `java.lang.Class`是一个特殊的类,它用来封装已经被加载到Java虚拟机(JVM)中的类和接口的信息。每当一个类或者接口被加载到JVM中时,就会创建一个与之关联的`java.lang.Class`对象。通过这个`Class`对象,我们可以...

    java反射示例代码

    通过`java.lang.Class`类、`java.lang.reflect`包中的`Constructor`、`Method`和`Field`类,我们可以实现反射操作。 2. **获取类信息**: - `Class<?> forName(String className)`: 通过类的全名(包括包名)获取`...

    Java-反射笔记.pdf

    在Java中,反射机制是通过java.lang.Class类和java.lang.reflect包来实现的。本笔记将深入探讨Java反射的原理、用途以及如何使用。 一、反射的概念与作用 反射是Java提供的一种能力,它允许程序在运行时动态地获取...

    用反射实现向不同简单JavaBean填充值的实现代码

    这个过程涉及到Java的`java.lang.reflect`包中的几个关键类,如`Class`, `Field`, 和 `Method`。 首先,让我们理解什么是JavaBean。JavaBean是符合特定规范的Java类,它通常具有一个无参数的构造函数,公开的getter...

    4.反射-introdute.doc

    1. **Class类**:`java.lang.Class`是Java反射的基础,它代表了Java中的每一个类或接口。通过`Class`对象,我们可以获取到类的各种信息,如类名、构造器、方法、字段等。 2. **获取Class对象**: - `Class.forName...

    Java 8个反射实例

    有了Class对象后,可以使用`newInstance()`方法创建对象,前提是该类有无参构造器。例如: ```java try { MyClass obj = (MyClass) clazz.newInstance(); } catch (InstantiationException | ...

    XStream解析xml demo

    而XStream是一个Java库,它提供了简单且直观的方式来序列化和反序列化Java对象到XML,以及从XML回溯到Java对象。本篇文章将深入探讨XStream解析XML的示例,帮助你理解和掌握这一强大的工具。 首先,我们需要理解...

    Java常见异常和错误总结

    java.lang.InstantiationException - **定义**: 试图使用`newInstance()`方法实例化一个不能实例化的类时触发的异常。 - **常见场景**: - 尝试实例化抽象类、接口或没有默认构造器的类。 - **解决方法**: - 提供...

    最简单java 反射原理示例

    这是通过`java.lang.Class`类和相关API来实现的。例如,我们可以通过类的全名获取其Class对象,进而访问该类的所有信息。 二、反射的应用场景 1. 动态加载类:在不确定具体类的情况下,根据配置文件或用户输入加载...

    java反射笔记

    在Java中,反射机制的核心是`java.lang.Class`类,它代表了Java中的每一个类。当Java虚拟机(JVM)加载一个类时,会创建对应的Class对象,这个对象包含了该类的所有信息,包括类名、字段、方法等。 反射的主要作用...

    反射:java知识中的重点

    Person person = (Person) personClass.newInstance(); System.out.println(person); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) { e.printStackTrace(); } } } ...

    用反射解析jar文件并执行里面Java代码

    import java.lang.reflect.Method; public class MainExecutor { public static void main(String[] args) throws Exception { String className = "com.example.YourMainClass"; Class<?> clazz = Class.for...

    java反射深入剖析(推荐)

    首先,我们需要了解,反射的核心在于`java.lang.Class`类。每个类在Java中都有一个与之对应的`Class`对象,它包含了类的所有元数据信息。例如,在案例1中,通过`demo.getClass()`或`Demo.class`获取到`Demo`类的`...

    Java语言的动态属性总结.pdf

    Java语言的动态属性主要涉及Java反射机制,这是Java语言提供的一种强大的基础功能,能够在运行时动态地对类、字段、方法等进行访问和修改。以下是关于Java语言动态属性的详细知识点总结: 1. Java反射机制...

Global site tag (gtag.js) - Google Analytics