基于参数的类的java新实例
我试图创建一个函数,它接受扩展Foo
的许多类中的一个,并在其类中返回该对象的新实例,而不是Foo
的新实例
我相信这是一个普遍的问题。有什么好的例子吗
我从未将类用作输入参数,仅使用类的成员。根据我所搜索的,这应该是可能的吗
你可以在下面搜索框中键入要查询的问题!
我试图创建一个函数,它接受扩展Foo
的许多类中的一个,并在其类中返回该对象的新实例,而不是Foo
的新实例
我相信这是一个普遍的问题。有什么好的例子吗
我从未将类用作输入参数,仅使用类的成员。根据我所搜索的,这应该是可能的吗
# 1 楼答案
看看Abstract Factory模式
# 2 楼答案
你的函数可以是这样的
希望这有帮助
# 3 楼答案
您是将
Class
对象作为参数传递,还是在Foo
子类的实例中传递在这两种情况下,解决方案几乎是相同的,在类对象上使用newInstance方法
如果需要构造函数参数,可以使用类getConstructor方法,然后使用构造函数newInstance(...)方法
# 4 楼答案
您可以在这里使用Java的反射
如果只想通过类名获取
Class
,可以使用Class.forName
:您可以检查该类是
Foo
还是它的子类:然后可以非常轻松地创建一个新实例(假设构造函数不带参数):