下面是在单链接列表中添加节点的函数。它将在Java15上执行,但对于Java8,它显示了编译错误。
public static SinglyLinkedListNode insertNodeAtPosition(SinglyLinkedListNode llist, int data, int position) {
// Write your code here
SinglyLinkedListNode new_node = new SinglyLinkedListNode(data);
SinglyLinkedListNode curr_node = llist;
int i=0;
while(i<position-1)
{
curr_node = curr_node.next;
i++;
}
new_node.next = curr_node.next;
curr_node.next = new_node;
return llist;
}
下面是整个问题陈述的链接:https://www.hackerrank.com/challenges/insert-a-node-at-a-specific-position-in-a-linked-list/problem
这就是错误:
Solution.java:78: error: Illegal static declaration in inner class Solution.Result
public static SinglyLinkedListNode insertNodeAtPosition(SinglyLinkedListNode llist, int data, int position) {
^
modifier 'static' is only allowed in constant variable declarations
Solution.java:121: error: cannot find symbol
SinglyLinkedListNode llist_head = insertNodeAtPosition(llist.head, data, position);
^
symbol: method insertNodeAtPosition(SinglyLinkedListNode,int,int)
location: class Solution
2 errors
Exit Status
1
这个错误的原因是什么?
Java8第一次编译错误的原因是,在Java15之前,内部类不允许使用静态方法。作为支持记录
类的更改的一部分,该限制已被删除。(请参见为什么静态方法允许在Java16的非静态内部类中?对于一些背景)。
第二个错误是第一个错误的结果。Java 8编译器已拒绝方法声明。。。然后就不会把它作为一个符号来解析了。
Java8可移植性的最简单解决方案是从该方法中删除静态
修饰符。(声明Result
类为静态
可能是另一种选择...)
给定单链接列表:
我成功地编写了一个带有点精灵的标准基本变换反馈粒子系统。没有闪烁,粒子从一个缓冲区更新到下一个缓冲区,然后进行渲染,然后输出缓冲区在下一次迭代时成为输入缓冲区。所有GPU端,标准转换反馈。精彩的一个大问题是:只有在我不使用gl_PointCoord的情况下,它才有效。在我的点精灵中使用平面颜色效果很好。但我需要gl_PointCoord做任何有意义的事。我所有的着色器,不管是否使用gl_Point
Java8引入了重要的新语言特性,如lambda表达式。 语言中的这些变化是否伴随着编译字节码中的重大变化,从而阻止它在不使用某些反向翻译器的情况下在Java7虚拟机上运行?
我正在使用java 11处理一些依赖项并编译到旧版本。我将一个依赖项迁移到Java11并正常工作,但我们仍然必须在Java8上运行Tomcat 7或8。是否可以使用标志来编译使用,或并在8上运行的代码? 发布标志表明应该可以: --发布版本 针对特定 VM 版本的公共、受支持和记录的 API 进行编译。支持的版本目标为 6、7、8 和 9。 这个项目是一个依赖项,独立运行在SprinBoot2.1
我在laravel 5.3中工作,我想在现有表格中添加列(即课程章节)。所以我已经通过命令创建了迁移文件 迁移文件已经创建,我已经添加了一些代码来在该表中添加列,如下所示 我执行命令后 PHP工匠迁移 表没有被创建,而不是我得到了错误 任何答案? 我现有的表迁移文件是
当我尝试编译时,这段代码给出了错误?