今天在编译 java 程序时遇到如下问题 :
Никакого прилагательного экземпляра типа PrintListfromtailtoHead не доступен. Должен квалифицировать распределение с помощью прилагательного экземпляра
типа printlistfromtailtohead (egxnew a (), где x - это экземпляр printlistfromtailtohead).
源代码为 :
public class printlistfromtailtohead {public static void main (string [] args) {listNode one = new ListNode (1); ListNode Two = новый список (2); ListNode Three = New ListNode (3); One.Next = Two; Two.Next = три; ArrayList <Integer> result = printfrom -haillaktailThadtoHad (one); Result);} класс ListNode {public int val; public listNode next; public listNode () {} public listNode (int val) {this.val = val;}} public Static ArrayList <Integer> printlistfromtailtohead (listnode listnode) {stack <integer> stack = new stack <integer> (whilenode)! {stack.push (listnode.val); listnode = listnode.next;} arraylist <integer> arraylist = new ArrayList <Integer> (); while (! Stack.isempty ()) {arraylist.add (stack.pop ());} return arraylist;}}}}}}}}}}}}}问题解释 :
代码中 , 我的 ListNode 类是定义在 PrintListfromtailToHead 类中的内部类。ListNode 内部类是动态的内部类 , 而我的 Main 方法是 статический 静态的。
就好比静态的方法不能调用动态的方法一样。
有两种解决办法 :
第一种 :
将内部类 ListNode 定义成静态 статический 的类。
第二种 :
将内部类 ListNode 在 PrintListfromtailtoHead 类外边定义。
两种解决方法 :
第一种 :
public class printlistfromtailtohead {public static void main (string [] args) {listNode one = new ListNode (1); ListNode Two = новый список (2); ListNode Three = New ListNode (3); One.Next = Two; Two.Next = три; ArrayList <Integer> result = printfrom -haillaktailThadtoHad (one); Результат);} статический список классов ListNode {public int val; public ListNode Next; public listNode () {} public listNode (int val) {this.val = val;}}第二种 :
открытый класс printListFromTailToHead {public static void main (string [] args) {listNode One = new ListNode (1); ListNode Two = new ListNode (2); ListNode three = new ListNode (3); One.Next = Two; Two.next = Three;} public StateR -stactList <Integer> print -stistromailTHead (listNode -staickEde) = new Stack <Integer> (); while (listnode! = null) {stack.push (listnode.val); listnode = listnode.next;} arraylist <Integer> arraylist = new Arraylist <Integer> (); while (! {public int val; public listnode next; public listnode () {} public listnode (int val) {this.val = val;}}以上所述是小编给大家介绍的 java 解决 Нет приложения экземпляра типа PrintListfromtakeToHead доступен 问题的两种方案 , 希望对大家有所帮助。 希望对大家有所帮助。 希望对大家有所帮助。 希望对大家有所帮助。 希望对大家有所帮助。 希望对大家有所帮助。 希望对大家有所帮助。 希望对大家有所帮助。