返回两个字符串作为方法签名

时间:2013-01-21 10:32:53

标签: java oop

我有以下方法,我需要返回两个字符串:

  1. type.getName()的值
  2. field.getName()
  3. 的值

    最好的方法是什么?

    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());
          }
    }
    

6 个答案:

答案 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对象中决定它需要什么数据。