如果我有课:
Class MyClass{
String param1="p2";
int param2 = 2;
SomeType param3 = new SomeType;
}
是否有一种聪明的方法可以从MyClass类型的对象的参数中获取字符串数组,即产生{" p2"," 2"的某些函数或实用程序, param3.toString()}直接?
我知道它可以通过普通的方式(手动)完成,但想法是参数太多了,我想对许多类型的类做同样的事情
答案 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);