No enclosing instance of type RemoveNthFromTheEnd is accessible.

刺骨的言语ヽ痛彻心扉 2024-02-19 16:06 216阅读 0赞

错误代码如下:

  1. public static void main(String[] args) {
  2. ListNode head = new ListNode(0);
  3. ListNode n1 = new ListNode(1);
  4. ListNode n2 = new ListNode(2);
  5. ListNode n3 = new ListNode(3);
  6. //System.out.println(new Solution().removeNthFromEnd(head, 1));
  7. }
  8. class ListNode {
  9. int val;
  10. ListNode next;
  11. ListNode(int x) { val = x; }
  12. }

原因在于main方法是静态方法,根据Java语法规则(静态嵌套),ListNode没有使用static修饰,故报错。

修改方法有两种,分别如下。

方法一:添加声明内部类为静态类(使用static关键字修饰静态类)

  1. public static void main(String[] args) {
  2. ListNode head = new ListNode(0);
  3. ListNode n1 = new ListNode(1);
  4. ListNode n2 = new ListNode(2);
  5. ListNode n3 = new ListNode(3);
  6. //System.out.println(new Solution().removeNthFromEnd(head, 1));
  7. }
  8. static class ListNode {
  9. int val;
  10. ListNode next;
  11. ListNode(int x) { val = x; }
  12. }

方法二:先实例化外部类,借助外部类实现内部类

  1. public static void main(String[] args) {
  2. RemoveNthFromTheEnd re = new RemoveNthFromTheEnd();
  3. ListNode n1 = re.new ListNode(1);
  4. }
  5. class ListNode {
  6. int val;
  7. ListNode next;
  8. ListNode(int x) { val = x; }
  9. }

发表评论

表情:
评论列表 (有 0 条评论,216人围观)

还没有评论,来说两句吧...

相关阅读