2015-09-05 36 views
0

资源泄漏:“sc”未关闭。eclipse中java中的资源泄漏错误

这是什么意思“sc”未关闭

public static void main(String atr[]){ 
    Scanner sc = new Scanner(System.in); 
    int a=sc.nextInt(); 
    int sum=0; 
    while(a<0){ 
     int r=a%10; 
     a=a/10; 
     sum = sum + r*r*r; 
    } 
} 
+0

,你可以打开输入/输出操作的任何资源都必须关闭使用的是完成此代码后他们,否则,可能会发生内存泄漏 – Sategroup

回答

0

它希望你关闭你的扫描仪。当我把它放在我的代码中时,它并没有阻止它运行,只是发出了一条警告消息。如果你想摆脱错误简单地把

sc.close(); 

在你的代码的结尾,警告应该消失。

0

请尝试以下

static Scanner sc ; 
public static void main(String atr[]){ 
    try{ 
    sc = new Scanner(System.in); 
    int a=sc.nextInt(); 
    int sum=0; 
     while(a<0){ 
      int r=a%10; 
      a=a/10; 
      sum = sum + r*r*r; 
    } 
    }catch(Exception e){ 
     e.printstacktrace(); 
    }finally{ 
     if(sc != null){ 
     sc.close() 
     } 
    } 
} 

您必须关闭扫描对象你做:)后

+0

但它显示与sc – Himanshu

+0

相关的静态变量错误的错误是有错误的。 SC作为局部变量,在检查条件时未被初始化。 – Himanshu