小编Geo*_*kis的帖子

从类名称动态创建java中的对象,并使用带数据的List设置类字段

我有一个包含字符串类型 - >的数据的列表 ["classField1", "classField2", "classField3"]

我有一个方法(myMethod(List list, String className))接受List作为参数.所以,我可以通过参数将此List传递给myMethod(List list,String className).

myMethod,我想创建一个对象,它将是className的实例,这是第二个参数.之后,我想使用List的数据设置类的字段.由于我想动态获取类的字段,因此上面的结果是我必须将列表的每个String值转换为类的每个字段的类型.

我确信列表中的字符串的顺序是正确的顺序,并且对应于具有相同顺序的类的字段.

有没有人知道如何执行上述操作?

例:

["StringtempValue", "StringUnitOfMeasurement"] =>

创建实例对象:

public class TempStruct {

   private double tempValue;
   private String unitOfMeasurement;

   public TempStruct(double tempValue, String unitOfMeasurement) {
     this.tempValue = tempValue;
     this.unitOfMeasurement = unitOfMeasurement;
   }

}
Run Code Online (Sandbox Code Playgroud)

我尝试用以下方式提供解决方案:

实际上我想创建一个现有类的对象,我试着用反射来做.我使用以下代码:

Class<?> cls = Class.forName(name);
Object clsInstance = (Object) cls.newInstance();
Field[] objectFields = clsInstance.getClass().getDeclaredFields();
Run Code Online (Sandbox Code Playgroud)

但是当我尝试创建新对象时,我得到了第二行的异常.正如@JB Nijet所说,我不知道方法getDeclaredFields()不会返回已排序的字段.

实际上,我有一个只接受字符串列表的方法,所以通过使用反射我将对象转换为字符串列表,然后我想做相反的事情.我没想到有任何其他方法可以做到这一点.

java reflection

15
推荐指数
1
解决办法
7万
查看次数

如何将 Xtext 与 Eclipse 插件集成?

我创建了一个简单的 Xtext 项目,我想生成一些规范文件。使用ANTTLR工具,我将根据Xtext项目的规范文件生成一些其他文件。我创建了一个插件,它使用规范文件并使用 ANTLR 解析器自动生成我需要的其他文件。我的问题是我是否可以将此插件与 Xtext 编辑器集成?更具体地说,如果一个用户想要使用该插件,它将看到 Xtext 编辑器,然后它将创建规范文件,最后,通过按按钮将使用 ANTLR 工具生成文件(最后一步已经完成。)有人有什么想法吗?

eclipse eclipse-plugin xtext

5
推荐指数
1
解决办法
850
查看次数

标签 统计

eclipse ×1

eclipse-plugin ×1

java ×1

reflection ×1

xtext ×1