我正在尝试创建一个对象创建器,它要求用户输入,然后创建一个对象。我有一个给定类的Contructors数组,有这些结构,我让用户选择一个,如果该构造函数有参数,我希望用户动态设置这些参数。
使用java.lang.reflect.Constructor中的构造函数列表;如下:
constructorList[0].getGenericParameterTypes()[0]
这会返回一个' Type'
的数组是否有可能在用户给出某些值的情况下创建此类型的实例?说它是一个int类型,如果我想要int为10 - (我知道这不会工作但理论上)
constructorList[0].getGenericParameterTypes()[0] intValue = 10;
如果它是一个对象,我可以从Type获取类...我想我可以只对我正在创建的objectcreator进行递归调用,是否有一种简单的方法来创建该对象的新实例,因为我觉得这可以进入一个永无止境的递归循环。
答案 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