Java Arraylist 在 get() 上丢失 methods/fields
Java Arraylist loses methods/fields on get()
我有一个名为 Trip 的自定义 class,它有几个 getter 方法,所有 public。
我将几个 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
我有什么地方可能出错的想法吗?
您应该在 filed.get(abc)
周围添加 try/catch
块,因为方法 filed.get(Object obj)
会抛出 IllegalAccessException
并且您应该处理它。
所以你只需要将 Object value = field.get(abc);
更改为
Object value = null;
try {
value = field.get(abc);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
而且效果很好。
我有一个名为 Trip 的自定义 class,它有几个 getter 方法,所有 public。 我将几个 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
我有什么地方可能出错的想法吗?
您应该在 filed.get(abc)
周围添加 try/catch
块,因为方法 filed.get(Object obj)
会抛出 IllegalAccessException
并且您应该处理它。
所以你只需要将 Object value = field.get(abc);
更改为
Object value = null;
try {
value = field.get(abc);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
而且效果很好。