Javaの弱参照をテストする適切な方法は何ですか?WeakReferenceのテスト
私の最初のアイデアは、次の操作を実行することです:
public class WeakReferenceTest {
public class Target{
private String value;
public Target(String value){
this.value = value;
}
public String toString(){
return value;
}
}
public class UsesWeakReference{
WeakReference<Target> reference;
public UsesWeakReference(Target test){
reference = new WeakReference<Target>(test);
}
public String call(){
Target test = reference.get();
if(test != null){
return test.toString();
}
return "empty";
}
}
@Test
public void testWeakReference(){
Target target = new Target("42");
UsesWeakReference usesWeakReference = new UsesWeakReference(target);
WeakReference<Target> triggerReference = new WeakReference<Target>(target);
assertEquals("42", usesWeakReference.call());
target = null;
while(triggerReference.get() != null){
System.gc();
}
assertEquals("empty", usesWeakReference.call());
}
}
私はそれが異なるJVM上で異なる動作をすることができますことを理解し、私はアプローチについて持っている予約がにSystem.gc()を使用しています。
答えをいただきありがとうございます...私の見解を立証します。 –