说我有一个带有公共空构造函数的类 Framework.Asd.Human 。我希望能够从字符串输入“Framework.Asd.Human”动态创建它的实例。这可以实现吗? (在java和C#中)
编辑:
是否也可以传入参数?喜欢新Framework.Asd.Human(“John”,100,200); (我知道没有类型安全,但在这种情况下没问题)
答案 0 :(得分:2)
您可以使用Activator.CreateInstance方法的此重载:http://msdn.microsoft.com/en-us/library/wcxyzt4d.aspx
像这样使用:
object myObject = (Framework.Asd.Human)Activator.CreateInstance(TypeOf(Framework.Asd.Human), new object[] { "John", 100, 200 });
对于Java:https://www.cs.auckland.ac.nz/references/java/java1.5/tutorial/reflect/object/arg.html
答案 1 :(得分:1)
你想要反思。
检查c#和VB.Net - http://msdn.microsoft.com/en-us/library/ms173183.aspx
对于Java - http://java.sun.com/developer/technicalArticles/ALT/Reflection/
修改
因为您询问了参数......
c# - http://msdn.microsoft.com/en-us/library/system.activator.createinstance.aspx
Java - http://www.java2s.com/Code/Java/Language-Basics/ObjectReflectioninvokeconstructorwithparameters.htm