0

我有一个名为 Trip 的自定义类,它有几个 getter 方法,所有内容都是公开的。我将几个 Trip 对象添加到 ArrayList:

public ArrayList<Trip> routeIndex;

当使用以下代码回调其中一个 Trip 对象时,我会遇到访问错误。

    Trip abc = routeIndex.get(0);
    for (Field field : abc.getClass().getDeclaredFields()) {
        field.setAccessible(true);
        String name = field.getName();
        field.setAccessible(true);
        Object value = field.get(abc);
        System.out.printf("Field name: %s, Field value: %s%n", name, value);
    }

这是对象值行上的以下错误:

unreported exception java.lang.IllegalAccessException; must be caught or declared when thrown

有什么想法我可能会出错吗?

4

1 回答 1

1

您应该在周围添加try/catch块,filed.get(abc)因为该方法filed.get(Object obj)会抛出IllegalAccessException并且您应该处理它。

所以你只需Object value = field.get(abc);要将

Object value = null;
try {
    value = field.get(abc);
} catch (IllegalAccessException e) {
    e.printStackTrace();
}

它工作正常。

于 2017-05-18T03:02:15.847 回答