Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java类编译时出错_Java - Fatal编程技术网

java类编译时出错

java类编译时出错,java,Java,我正在研究java的垃圾收集器部分,我已经编写了下面的java类,但是它在方法printGCStats()上显示了eclipse编辑器本身的编译时错误 选择后会显示错误“void”@预期,请告知如何克服此错误 import java.lang.management.GarbageCollectorMXBean; import java.lang.management.ManagementFactory; class demoGrbage { public static void m

我正在研究java的垃圾收集器部分,我已经编写了下面的java类,但是它在方法printGCStats()上显示了eclipse编辑器本身的编译时错误 选择后会显示错误“void”@预期,请告知如何克服此错误

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);
        }
}
}

将方法
public void printGCStats()
移出main()

您已经在方法中定义了该方法。它在java中是不允许的


在main之外定义
printGCStats
并调用main方法。

您已经在
main
方法中编写了
printGCStats

你应该这样称呼它:

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

public void printGCStats() 
{
    /// ...
}

这是一个非常基本的错误。如何在另一个方法中定义一个方法? 您在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);
}
}