ในตัวสร้างของคลาสของฉัน ฉันแมปวัตถุปัจจุบัน (สิ่งนี้) พร้อมกับคีย์ของมัน (สตริงที่ป้อนเป็นพารามิเตอร์ในตัวสร้าง) ลงใน LinkedHashMap แบบคงที่ เพื่อให้ฉันสามารถอ้างอิงวัตถุโดย สตริงทุกที่ที่ฉันอาจต้องการมันในภายหลัง
นี่คือรหัส (ถ้าช่วยได้):
public class DataEntry {
/** Internal global list of DataEntry objects. */
private static LinkedHashMap _INTERNAL_LIST;
/** The data entry's name. */
private String NAME;
/** The value this data entry represents. */
private Object VALUE;
/** Defines a DataEntry object with a name and a value. */
public DataEntry( String name, Object value )
{
if( _INTERNAL_LIST == null )
{
_INTERNAL_LIST = new LinkedHashMap();
}
_INTERNAL_LIST.put( name, this );
NAME = name;
VALUE = value;
}
}
ปัญหา? อินสแตนซ์ของคลาสนี้จะไม่ถูกเก็บขยะเมื่อฉันใช้งานเสร็จแล้ว
ฉันแค่อยากรู้ว่ามีวิธีใดที่อินสแตนซ์ของคลาสนี้จะทำความสะอาดตัวเองเมื่อฉันใช้งานเสร็จแล้วโดยไม่ต้องเรียกใช้เมธอด Remove() หรือบางอย่างด้วยตนเองในแต่ละครั้ง (เพื่อลบการอ้างอิงใน LinkedHashMap ภายในเมื่อฉัน ฉันหมายถึงว่าไม่ได้ใช้มันอีกต่อไปแล้ว)