Каков правильный подход к тестированию слабой ссылки в Java?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 reference;
public UsesWeakReference(Target test){
reference = new WeakReference(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 triggerReference = new WeakReference(target);
assertEquals("42", usesWeakReference.call());
target = null;
while(triggerReference.get() != null){
System.gc();
}
assertEquals("empty", usesWeakReference.call());
}
}
< /code>
Бронирование, которое я имею в отношении подхода, заключается в использовании System.gc (), насколько я понимаю, что он может вести себя по -разному при разных JVM. < /p>
Подробнее здесь: https://stackoverflow.com/questions/111 ... kreference