例如
public String format(Field field, Object o) {
field.setAccessible(true);
Object value = null;
try {
value = field.get(o);
if (value instanceof Number) {
return field.get(o).toString();
}
} catch (IllegalAccessException e) {
....
}
...
}
当class MyClass {
private MyField1 f1;
private MyField2 f2;
@override
protected void finalize() throws Throwable {
System.out.println("MyClass finalized.");
}
}
最终确定的实例MyClass
和f1
也已完成时?
如果f2
和MyField1
也有终结器,那么它们之间的执行顺序是什么?
答案 0 :(得分:1)
不,f1
和f2
不会自动完成。
他们可能会引用可以作为MyClass
实例同时进行垃圾收集的对象,假设没有其他内容指的是f1
和{{f2
的对象。 1}}是指。
向类添加显式终结器可能会干扰JVM的工作,除非你采用这个习惯用法:
protected void finalize() throws Throwable {
try {
/*your finalize code*/
} finally {
super.finalize();
}
}