2013-03-25 207 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); 
} 

}