我有以下方法,我需要返回两个字符串:
最好的方法是什么?
public static void getClassMetaData(List<Object> listClsObj) {
....
for (Field field : declaredFields) {
Class<?> type = field.getType();
System.out.println(type.getName());
System.out.println(field.getName());
}
}
答案 0 :(得分:4)
我宁愿只返回Field
,因为您可以从type
本身获取field
和其他信息。
然后在调用时,调用方法 - field.getType()
来获取类型。
好像您正在使用班级的所有声明字段,在这种情况下,您只需返回List<Field>
: -
public static List<Field> getClassMetaData(List<Object> listClsObj) {
// Rather than iterating over `declaredField`, just return it
return declaredFields;
}
答案 1 :(得分:2)
你当然可以返回一个String数组,但我认为最好只返回Field
答案 2 :(得分:2)
返回任意数量元素的更灵活和正确的方法 - 返回数据集合的List实现。
答案 3 :(得分:1)
您可以使用这两个字段返回大小为2的数组。
return new String[]{type.getName(),field.getName()};
答案 4 :(得分:1)
您只需返回Field实例,而不是尝试返回2 String。否则,您可以返回包含2个String的对象,如Pair对象或自定义对象。
class Pair<F, S> {
private final F first;
private final S second;
public Pair(F first, S second) {
this.first = first;
this.second = second;
}
// getter for first and second
}
答案 5 :(得分:1)
您应该尝试返回一个列表,因为您最终在其他代码中使用了field对象的属性。
另外,它会使该方法更易于维护。该方法的使用者可以从Field对象中决定它需要什么数据。