首页 > 代码库 > No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing
No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing
package com.thread; public class Thread01 { public class Thread1 extends Thread{ private String name; public Thread1(String name){ this.name = name; } public void run() { for (int i = 0; i < 5; i++) { System.out.println(name+"运行:"+i); try { sleep((int) Math.random()*10); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } public static void main(String[] args){ Thread1 thread02 = new Thread1("A"); Thread1 thread02 = new Thread1("B"); } }
在写这段代码的时候,编译器在Thread1 thread02 = new Thread1("A");一直会报No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing的错误,我在网上查了资料发现:在Java中,类中的静态方法不能直接调用动态方法。只有将某个内部类修饰为静态类,然后才能够在静态类中调用该类的成员变量与成员方法。
我们可以将将 public class Thread1 改为public static class Thread1
No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。