亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

解決Java變異出現(xiàn)錯(cuò)誤No enclosing instance of type XXX is accessible

 更新時(shí)間:2021年09月29日 15:20:11   作者:zhushy  
這牌你文章主要給大家分享解決Java變異出現(xiàn)錯(cuò)誤,具體的饑餓絕方案請(qǐng)看下面文章的內(nèi)容,需要的朋友可以參考一下,希望能幫助到你

一、錯(cuò)誤代碼和錯(cuò)誤現(xiàn)象

先記錄下問(wèn)題現(xiàn)象,寫java代碼時(shí)遇到下面的編譯錯(cuò)誤。

No enclosing instance of type FileTree is accessible. Must qualify the 
allocation with an enclosing instance of type FileTree (e.g. x.new A() 
where x is an instance of FileTree).

代碼如下:

import java.util.Arrays;
import java.util.LinkedHashMap;

public class FileTree {
 class Node {
  String name;

  public Node(String name) {
   super();
   this.name = name;
  }

  LinkedHashMap<String, Node> map = new LinkedHashMap<String, Node>();
 }

 public static void outputThreeFormat(String[] in) {
  Arrays.sort(in);
  Node root = new Node("/");

 }

 public static void main(String[] args) {
  String[] in = { "usr/local/lib64", "GAMES",
    "usr/DRIVERS", "home", "var/log/" };
  outputThreeFormat(in);

 }

}

錯(cuò)誤截圖如下:

二、如何解決這些錯(cuò)誤

錯(cuò)誤的含義是,沒(méi)有可以訪問(wèn)的外部實(shí)例enclosing instance。必須分配一個(gè)合適的外部類FileTree的實(shí)例(如x.new A(),x必須是FileTree的實(shí)例。)

結(jié)合出錯(cuò)的代碼,很容易知道根源是什么:

  • class Node是非靜態(tài)內(nèi)部類
  • public static void outputThreeFormat(String[] in)是靜態(tài)方法
  • 靜態(tài)方法是不能直接訪問(wèn)非靜態(tài)類的。

1、可以不使用內(nèi)部類

可以把class Node作為外部類定義,這樣在FileTree類中不管是靜態(tài)還是非靜態(tài)方法都可以直接new Node初始化個(gè)節(jié)點(diǎn)。

import java.util.Arrays;
import java.util.LinkedHashMap;

class Node {
 String name;

 public Node(String name) {
  super();
  this.name = name;
 }

 LinkedHashMap<String, Node> map = new LinkedHashMap<String, Node>();
}

public class FileTree {

 public static void outputThreeFormat(String[] in) {
  Arrays.sort(in);
  Node root = new Node("/");

 }

 public static void main(String[] args) {
  String[] in = { "usr/local/lib64", "GAMES", "usr/DRIVERS", "home", "var/log/" };
  outputThreeFormat(in);

 }

}

2、可以使用靜態(tài)內(nèi)部類

可以把class Node作為靜態(tài)內(nèi)部類定義,即static class Node。

import java.util.Arrays;
import java.util.LinkedHashMap;

public class FileTree {
 static class Node {
  String name;

  public Node(String name) {
   super();
   this.name = name;
  }

  LinkedHashMap<String, Node> map = new LinkedHashMap<String, Node>();
 }

 public static void outputThreeFormat(String[] in) {
  Arrays.sort(in);
  Node root = new Node("/");

 }

 public static void main(String[] args) {
  String[] in = { "usr/local/lib64", "GAMES",
    "usr/DRIVERS", "home", "var/log/" };
  outputThreeFormat(in);

 }

}

3、使用非靜態(tài)內(nèi)部類時(shí),使用外部類的實(shí)例進(jìn)行調(diào)用

如下所示:

import java.util.Arrays;
import java.util.LinkedHashMap;

public class FileTree {
 class Node {
  String name;

  public Node(String name) {
   super();
   this.name = name;
  }

  LinkedHashMap<String, Node> map = new LinkedHashMap<String, Node>();
 }

 public static void outputThreeFormat(String[] in) {
  Arrays.sort(in);
  FileTree ft=new FileTree();
  Node root = ft.new Node("/");

 }

 public static void main(String[] args) {
  String[] in = { "usr/local/lib64", "GAMES",
    "usr/DRIVERS", "home", "var/log/" };
  outputThreeFormat(in);

 }

}

到此這篇關(guān)于解決Java變異出現(xiàn)錯(cuò)誤No enclosing instance of type XXX is accessible的文章就介紹到這了,更多相關(guān)解決Java錯(cuò)誤No enclosing instance of type XXX is accessible內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論