2013-03-25 147 views
0

我是一个java的垃圾收集器部分,我写了下面的java类,但它显示了编译时错误在eclipse编辑器本身的方法printGCStats() 选择它正显示出“无效” @expected错误,请advse如何从这个克服...java类编译时错误

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

回答

0

招法public void printGCStats()出的主()

1

你必须定义方法中的方法。它不允许在Java中。

定义printGCStats主要和主要方法之外。

0

您已在main方法内写入printGCStats

你应该叫它如下:

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

public void printGCStats() 
{ 
    /// ... 
} 
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); 
} 

}