今天在编译 Java 程序时遇到如下问题 :
Tidak ada instance tertutup dari tipe printlistFromtailtoHead dapat diakses. Harus memenuhi syarat alokasi dengan instance yang melampirkan
tipe printlistFromtailtohead (egxnew a () di mana x adalah instance dari printlistFromtailtohead).
源代码为 :
kelas publik printListFromtailtoHead {public static void main (string [] args) {listNode One = new ListNode (1); listNode dua = new listNode (2); listNode tiga = new listNode (3); one.next = dua; dua.next = tiga; arraylist <integer> hasil = duax PrintListFromtailtoHead (satu); System.out.println ("结果是 :" + hasil);} kelas listNode {public int val; listNode publik selanjutnya; listNode publik () {} listNode publik (int val) {this.val = val;}} public static arrayList <integer> cetakan public (integer> cetakan (valpromtefom (integernode (integernode (valpoMernode (integernode (integer- listlist (integernode (integer- valnode (integernode (this.val;} listList (integernode public listList (integer- listlist (integer- valtoMer (integernode) {Stack <Integer> stack = Stack baru <Integer> (); while (listNode! = Null) {stack.push (listNode.val); listNode = listNode.next;} arraylist <integer> arraylist = arraylist new <integer> (); while (! {arraylist.add (stack.pop ());} return arrayList;}}问题解释 :
代码中 , 我的 listNode 类是定义在 printlistFromtailtohead 类中的内部类。listNode 内部类是动态的内部类 , 而我的 utama 方法是 statis 静态的。
就好比静态的方法不能调用动态的方法一样。
有两种解决办法 :
第一种 :
将内部类 listNode 定义成静态 statis 的类。
第二种 :
将内部类 listNode 在 printlistFromtailtohead 类外边定义。
两种解决方法 :
第一种 :
kelas publik printListFromtailtoHead {public static void main (string [] args) {listNode One = new ListNode (1); listNode dua = new listNode (2); listNode tiga = new listNode (3); one.next = dua; dua.next = tiga; arraylist <integer> hasil = duax PrintListFromtailtoHead (satu); System.out.println ("结果是 :" + hasil);} kelas statis ListNode {public int val; listNode publik selanjutnya; listNode publik () {} listNode publik (int val) {this.val = val;}}第二种 :
Kelas Publik PrintListFromTailtoHead {public static void main (string [] args) {listNode One = new ListNode (1); listNode dua = new listNode (2); listNode tiga = ListNode baru (3); One.next = Two.next = Three;} Public Static Arraylist <Integer> cetakan = dua. {Stack <Integer> stack = Stack baru <Integer> (); while (listNode! = Null) {stack.push (listNode.val); listNode = listNode.next;} arraylist <integer> arraylist = arraylist new <integer> (); while (! {arraylist.add (stack.pop ());} return arrayList;}} class listNode {public int val; listNode publik selanjutnya; listNode publik () {} listNode publik (int val) {this.val = val;}}以上所述是小编给大家介绍的 Java 解决 Tidak ada instance tertutup dari tipe printlistFromtailtohead dapat diakses 问题的两种方案 , 希望对大家有所帮助。