0

次のような列挙型があります。

    public enum MyEnum {

        FIRST(new FirstOperations()),
        SECOND(new SecondOperations())
...

私の問題は、2 つの異なる Unit Tests クラスがあり、両方が宣言されているMyEnum my = MyEnum.FIRST;場合、FirstOperationsクラスは実行される最初の Unit Test によってのみインスタンス化されることです。2 番目のテスト ケースがそれを再開します。

JUnit がこれらの列挙型をヒープに保持するのはなぜですか? 最初のテスト ケースが完了したら、ガベージ コレクションを行うべきではありませんか?

4

1 に答える 1

0

列挙型は、シンゲルトンの完全な例です (たとえば、こちらを参照してください)。そのため、各テストで JVM をフォークしない限り、インスタンス化されるのは一度だけです。

ガベージ コレクターに依存しないでください。いつ実行されるかわかりません。

于 2013-02-25T20:36:13.227 に答える