概述
构造函数类的newInstance()方法用于创建和初始化此构造函数的新实例,并将初始化参数作为参数传递给此方法。展开每个参数以匹配原始形式参数,并且必要时对原始参数和引用参数都进行方法调用转换。
如果构造函数的形式参数数量为0,则提供的参数长度为0或为null。如果构造函数正常完成,则返回新创建并初始化的实例。
用法:
public T newInstance(Object... initargs)
throws InstantiationException, IllegalAccessException,
IllegalArgumentException, InvocationTargetException
参数:此方法接受initargs作为参数,它是将作为参数传递给构造函数调用的对象数组。基本类型的值被包装在适当类型的包装对象中(例如,Float中的float)。
返回值:此方法返回一个新对象,该对象是通过调用该对象表示的构造函数而创建的。
异常:此方法引发以下异常:
IllegalAccessException:如果此Constructor对象正在强制执行Java语言访问控制,而基础构造函数不可访问。
IllegalArgumentException:如果实际参数和形式参数的数量不同;如果原始参数的展开转换失败;或者在可能的解包之后,无法通过方法调用转换将参数值转换为相应的形式参数类型;或者如果此构造函数与枚举类型有关。
InstantiationException:如果声明基础构造函数的类表示抽象类。
InvocationTargetException:如果基础构造函数引发异常。
ExceptionInInitializerError:如果此方法引发的初始化失败。
以下示例程序旨在说明newInstance()方法:
示例1:
// Java program to demonstrate
// Constructor.newInstance() method
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
public class GFG {
public static void main(String... args)
throws InstantiationException,
IllegalAccessException,
IllegalArgumentException,
InvocationTargetException
{
// An array of constructor
Constructor[] constructor
= Test.class.getConstructors();
// Apply newInstance method
Test sampleObject
= (Test)constructor[0].newInstance();
System.out.println(sampleObject.value);
}
}
class Test {
String value;
public Test()
{
System.out.println("New Instance is created");
value = "New Instance";
}
}
输出:
New Instance is created
New Instance
示例2:
// Java program to demonstrate
// Constructor.newInstance() method
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
public class GFG {
public static void main(String... args)
throws InstantiationException,
IllegalAccessException,
IllegalArgumentException,
InvocationTargetException
{
// an array of constructor
Constructor[] constructor
= Test.class.getConstructors();
// apply newInstance method
Test sampleObject
= (Test)constructor[0]
.newInstance("New Field");
System.out.println(sampleObject.getField());
}
}
class Test {
private String field;
public Test(String field)
{
this.field = field;
}
public String getField()
{
return field;
}
public void setField(String field)
{
this.field = field;
}
}
输出:
New Field
参考:https://docs.oracle.com/javase/10/docs/api/java/lang/reflect/Constructor.html#newInstance(java.lang.Object…)
最后
以上就是会撒娇蚂蚁为你收集整理的java newinstance 参数_Java Constructor newInstance()用法及代码示例的全部内容,希望文章能够帮你解决java newinstance 参数_Java Constructor newInstance()用法及代码示例所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复