使用Java Reflection创建基元类型/对象

时间:2016-11-15 21:28:44

标签: java class object reflection types

我正在尝试创建一个对象创建器,它要求用户输入,然后创建一个对象。我有一个给定类的Contructors数组,有这些结构,我让用户选择一个,如果该构造函数有参数,我希望用户动态设置这些参数。

使用java.lang.reflect.Constructor中的构造函数列表;如下:

constructorList[0].getGenericParameterTypes()[0]

这会返回一个' Type'

的数组

是否有可能在用户给出某些值的情况下创建此类型的实例?说它是一个int类型,如果我想要int为10 - (我知道这不会工作但理论上)

constructorList[0].getGenericParameterTypes()[0] intValue = 10;

如果它是一个对象,我可以从Type获取类...我想我可以只对我正在创建的objectcreator进行递归调用,是否有一种简单的方法来创建该对象的新实例,因为我觉得这可以进入一个永无止境的递归循环。

1 个答案:

答案 0 :(得分:1)

总的来说,我没有看到原语的任何基本问题。虽然你应该考虑,<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.19.1</version> </plugin> <plugin> <groupId>org.robotframework</groupId> <artifactId>robotframework-maven-plugin</artifactId> <version>1.4.6</version> <executions> <execution> <goals> <goal>run</goal> </goals> </execution> </executions> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>com.github.markusbernhardt</groupId> <artifactId>robotframework-selenium2library-java</artifactId> <version>1.4.0.8</version> </dependency> </dependencies> 是一个非常抽象的声明,所以它不仅包括具体的类,还包括参数变量,参数化类型等等。我想,记住原语是有用的非常具体的类型(类),并且它们没有明确构造(因为它们在代码中逐字地声明,并且在内存中按值&#39;处理);所以我猜,他们的盒装&#39;将使用版本。

虽然您应该考虑,但不会应用类型检查,因此您需要手动确保所有输入都有效,并正确转换方法结果。

以下示例代码可能会激发您的灵感:

Type