将类作为java中方法的参数传递

时间:2012-06-14 21:08:36

标签: java class object methods

我试图创建一个创建类的新对象的方法,但我希望能够创建许多不同类的对象,因此为每个类创建一个方法对我来说不起作用。有没有什么方法可以将类传递给方法,以便可以创建新对象?我的所有类都有相同的构造函数。

6 个答案:

答案 0 :(得分:6)

您可以使用

public <T> T instanciate(Class<? extends T> clazz) throws Exception {
    return clazz.newInstance();
}

并将其称为

MyObject o = instanciate(MyObject.class);

如果你这样做,你想要实例化的类必须有一个没有参数的默认构造函数。否则,您将收到java.lang.InstantiationException

答案 1 :(得分:1)

您是否了解过Abstract Factory pattern

EDITED

顺便说一句,我不认为反射是制作你的架构的好方法,如果你有很多具有相同构造函数的类尝试使用像Factory或Builder这样的有用模式而不是用反射创建一个方法。

答案 2 :(得分:0)

您可以在类型名称上使用reflectionswitch并执行您必须执行的操作。

答案 3 :(得分:0)

我相信你正在寻找反思。

查看此问题:What is reflection and why is it useful?

答案 4 :(得分:0)

我认为Class.forName可能就是你要找的东西

答案 5 :(得分:0)

  

package com.loknath.lab;

     

公共类HasHash {

     

public static void main(String [] args)抛出异常{

  HasHash h = createInstance(HasHash.class);      
            h.display();
     

}   //返回@parameter的Class实例

     

public static T createInstance(Class className)             throws Exception {return className.newInstance(); }

     

private void display(){System.out.println(&#34; Disply&#34;); }

     

}

相关问题