1

ガベージコレクターに苦労しています。特定のオブジェクトから強くまたは弱く到達可能なすべてのオブジェクトをリストしたいと考えています。再帰的に行う必要があることはわかっていますが、それを実現する簡単な方法が見つかりません。手伝っていただけませんか?

public static List<Object> getAllReachableObjects (Object from)
4

2 に答える 2

1

残念ながら、それは実際には機能しません。OK、私はそのようなメソッドが欲しいだけです:

   public static List < Object > getStronglyReachable (Object from)
     // contains all objects that are ONLY strongly reachable

   public static List < Object > getSoftlyReachable (Object from)
     // contains all objects that are strongly OR softly reachable

   public static List < Object > getWeaklyReachable (Object from)
     // contains all objects that are strongly OR softly OR weakly reachable

オブジェクトは配列にすることができることに注意してください。コードには次のようなものが必要です。

// if an object is an array, iterate over its elements
if (from.getClass ().isArray ())
    for (int i = 0; i < Array.getLength (from); i++)
        collectAllReachableObjects (Array.get (from, i), result);
于 2014-04-27T10:58:33.257 に答える