0

私は Java のガベージ コレクター部分に取り組んでおり、以下の Java クラスを作成しましたが、それを選択するとメソッド printGCStats() で Eclipse エディター自体にコンパイル時エラーが表示され、エラー "void" @expected が表示されます。これから乗り越える方法を教えてください...

import java.lang.management.GarbageCollectorMXBean;
import java.lang.management.ManagementFactory;


class demoGrbage {

    public static void main(String[] args) {

        public void printGCStats() 
        {
            long totalGarbageCollections = 0;
            long garbageCollectionTime = 0;

            for(GarbageCollectorMXBean gc :
                    ManagementFactory.getGarbageCollectorMXBeans()) {

                long count = gc.getCollectionCount();

                if(count >= 0) {
                    totalGarbageCollections += count;
                }

                long time = gc.getCollectionTime();

                if(time >= 0) {
                    garbageCollectionTime += time;
                }
            }

            System.out.println("Total Garbage Collections: "
                + totalGarbageCollections);
            System.out.println("Total Garbage Collection Time (ms): "
                + garbageCollectionTime);
        }
}
}
4

4 に答える 4

1

メソッド内でメソッドを定義しました。Javaでは許可されていません。

main の外で定義printGCStatsし、main メソッドで呼び出します。

于 2013-03-25T07:13:53.777 に答える
0

public void printGCStats()メソッドを main() の外に移動する

于 2013-03-25T07:13:47.437 に答える
0

メソッドprintGCStats内に記述しました。main

次のように呼び出す必要があります。

public static void main(String[] args) 
{
    printGCStats();
}

public void printGCStats() 
{
    /// ...
}
于 2013-03-25T07:15:00.740 に答える
0

これは非常に基本的なエラーです。別のメソッド内でメソッドを定義するにはどうすればよいですか? main() 内で printGCStats() を定義しましたが、これは違法です。

これを使って :

class demoGrbage {

public static void main(String[] args) {
    demoGrbage demo = new demoGrbage();
    demo.printGCStats();

}
public void printGCStats() 
{
    long totalGarbageCollections = 0;
    long garbageCollectionTime = 0;

    for(GarbageCollectorMXBean gc :
            ManagementFactory.getGarbageCollectorMXBeans()) {

        long count = gc.getCollectionCount();

        if(count >= 0) {
            totalGarbageCollections += count;
        }

        long time = gc.getCollectionTime();

        if(time >= 0) {
            garbageCollectionTime += time;
        }
    }

    System.out.println("Total Garbage Collections: "
        + totalGarbageCollections);
    System.out.println("Total Garbage Collection Time (ms): "
        + garbageCollectionTime);
}

}

于 2013-03-25T07:16:16.177 に答える