Use Class.getConstructor()
and call Constructor.newInstance()
on that. For example if this is your constructor on class Foo
:
public Foo(String bar, int baz) {
}
You'd have to do something like this:
Constructor c = Class.forName("Foo").getConstructor(String.class, Integer.TYPE);
Foo foo = (Foo) c.newInstance("example", 34);
You'll have to know what arguments need to be passed to the constructor. If that's not desirable you should consider having an empty constructor. Then have methods to set what you'd normally pass into the constructor.
One might ask if you have the right pattern here though. Do you really need to use reflection, perhaps there's a better approach? If you know you're going to be casting to your object already, why not just construct it normally? You might want to provide more context as to why you need to do this. There are valid reasons, however you haven't stated any.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…