将对象转换为其参数数组'值

时间:2015-11-24 22:05:24

标签: java

如果我有课:

Class MyClass{
    String param1="p2";
    int param2 = 2;
    SomeType param3 = new SomeType;
}

是否有一种聪明的方法可以从MyClass类型的对象的参数中获取字符串数组,即产生{" p2"," 2"的某些函数或实用程序, param3.toString()}直接?

我知道它可以通过普通的方式(手动)完成,但想法是参数太多了,我想对许多类型的类做同样的事情

2 个答案:

答案 0 :(得分:0)

唯一的可能是使用Reflection

https://docs.oracle.com/javase/tutorial/reflect/

final Element element = new Element("1", "2");
Class<? extends Element> c = element.getClass();

final Field[] fields = c.getFields();

final List<String> values = Stream.of(fields)
    .map(field -> field.get(element).toString())
    .collect(toList());

System.out.println(values);

答案 1 :(得分:0)

您可以使用反射做一些事情,例如:

List<Object> list = new ArrayList<Object>();

for (Field field : this.getClass().getDeclaredFields()) {
    list.add(field.get(this));
}

System.out.println(list);