public class Test extends Test2 { static class Test2 {
static int a=6;
public  static void g(){
//System.out.println(this.a);
} static int a=5;
public  static void f(){
System.out.println(a);
    }
public static strictfp void main(String args[]){
Test.f(); 
   }
} 我是在试验静态方法里到底有没有this和super时写出来的这个代码 但是很奇怪 在控制台里可以正常编译运行出来结果 但是放到eclipse里会提示Test2 conn't be resolve a type 
求高人来解释

解决方案 »

  1.   

    少了半个括号public class Test extends Test2 {
    static class Test2 {
    static int a=6;
    static void g(){
     //System.out.println(this.a);
    }
    }

    static int a=5;
    public  static void f(){
    System.out.println(a);
        }
    public static void main(String args[]){
    Test.f(); 
       }
      

  2.   

    哈哈,我们经常犯的错误...我竟然还数了半天....
    =========================================
    我是说我顶楼贴出来的代码少写了个}不是说补上}问题就没了我猜是因为那个内部类是静态的 编译的时候先编译了Test2 然后再编译Test的时候所以没错 
    但为什么eclipse不行呢 直接运行会出来这个
    Exception in thread "main" java.lang.Error: Unresolved compilation problem:  at Test.main(Test.java:13)
      

  3.   

    少半个括号, 你是怎么编译通过的?
    我在控制台中, 一样编译不通过, 使用的是JDK6.10, 不知道你是怎么编译成功的。实际上, 这个本来就是错的, 因为在编译的时候, Test要先取得他的父类的信息, 而这时父类根本就还不存在。
      

  4.   

    晕 都不看贴的吗? 干吗老跟那半个括号过不去 顶楼的帖子代码是我删除多于语句的时候不小心多删了半个括号 少了半个括号还能运行通过 神仙吗? 反正我没那本事 很显然我问的重点是 为什么1楼的那个代码可以在控制台里运行出来结果 而在eclipse不行
      

  5.   

    建议楼主换GUI工具吧! Eclipse / NetBeans 都很好!
      

  6.   

    删掉你的 class文件。重新编译看看!
      

  7.   

    晕!被我猜中了。你运行的是老的 class 。呵呵呵!