2012-04-09 18 views

Odpowiedz

19

Można użyć fabryce statycznego inicjatora podczas wystąpienia swoją klasę (Singleton pattern), a następnie dodać każdy wygenerowany instancji w konstruktorze fabryki do listy ...

coś takiego:

class MyObject { 
    private static List instances = new ArrayList(); 

    public static MyObject createMyObject() { 
    MyObject o = new MyObject(); 
    instances.add(new java.lang.ref.WeakReference(o)); 
    return o; 
    } 

    public static List getInstances() { 
    return instances; 
    } 

    private MyObject() { 
    // Not allowed 
    } 
    } 
+0

Słaby zestaw haszyszu może być ładniejszą kolekcją, ponieważ wyczyści takie odniesienia w sposób przezroczysty. 'Set instances = Collections.newSetFromMap (new WeakHashMap ());' –

+2

To nie jest możliwe rozwiązanie mojego obecnego problemu ... Chcę uzyskać wystąpienia klas innych firm. – barneypitt

7

Ogólnie. Jeśli korzystasz z interfejsu API debuggera, może to być możliwe (nie sprawdziłem), ale nie powinieneś używać tego innego niż niż do debugowania.

Jeśli Twój projekt tego wymaga, prawdopodobnie warto przemyśleć ten projekt.

Powiązane problemy