java newinstance 参数_我可以将Class.newInstance()与构造函数参数一起使用吗?

问题

我想使用Class.newInstance()但我实例化的类没有一个无效的构造函数。因此,我需要能够传递构造函数参数。有没有办法做到这一点?

#1 热门回答(173 赞)

Class.getDeclaredConstructor(String.class).newInstance("HERESMYARG");

#2 热门回答(81 赞)

myObject.getClass().getDeclaredConstructors(types list).newInstance(args list);

编辑:根据评论看起来像指向类和方法名称是不够的一些用户。有关更多信息,请查看getting constuctor和invoking it的文档。

#3 热门回答(54 赞)

假设你有以下构造函数

class MyClass {

public MyClass(Long l, String s, int i) {

}

}

你将需要显示你打算使用此构造函数,如下所示:

Class classToLoad = MyClass.class;

Class[] cArg = new Class[3]; //Our constructor has 3 arguments

cArg[0] = Long.class; //First argument is of *object* type Long

cArg[1] = String.class; //Second argument is of *object* type String

cArg[2] = int.class; //Third argument is of *primitive* type int

Long l = new Long(88);

String s = "text";

int i = 5;

classToLoad.getDeclaredConstructor(cArg).newInstance(l, s, i);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值