cannot be referenced from a static context

2018-01-17 10:23:31

报错:cannot be referenced from a static context,报错代码如下

public class neicunxielou {
    public static void main(String[] args)  throws Exception {


        MyThread myThread1 = new MyThread();
        myThread1.run();
    }

    private  class MyThread extends Thread{
        public void run(){
            System.out.println("hello");
        }
    }

}

原因如下

MyThread是一个非静态的内部类,只能被这个类的非静态方法访问。main方法是静态方法,使用该类创建对象时会出错。解决办法有两个:
1. 将MyThread变为静态的内部类,即加上static;
2. 将类移到外面定义。


修改代码如下


neicunxielou {
    main(String[] args)  Exception {


        MyThread myThread1 = MyThread();
        myThread1.run();
    }

    MyThread Thread{
        run(){
            System..println();
        }
    }

}


  • 2019-11-04 02:12:42

    genymotion免费版

    genymotion是一套完整的android虚拟环境工具,相对官方android sdk,它的安装和使用简洁方便不臃肿,但是现在genymotion官方网站不再提供个人的下载,这篇博客记录了如何下载和使用genymotion个人版.