我有这段代码,但我不明白为什么会出现以下错误:
local variables referenced from a lambda expression must be final or effectively final
public int firstMissingPositive(int[] nums) {
int k;
for (int i = 1;; i++) {
if (!Arrays.stream(nums).anyMatch(x -> x != i)) {
k = i;
break;
}
}
return k;
}
因为i
实际上不是final(请参见i++
),而且必须在lambda表达式中使用它。
通过在循环中分配一个新的局部变量,可以很容易地修复:
public int firstMissingPositive(int[] nums) {
int k;
for (int i = 1;; i++) {
final int j = i;
if (! Arrays.stream(nums).anyMatch(x -> x != j)) {
k = j;
break;
}
}
return k;
}
有什么方法可以简化这段代码吗?我正好有一个白色的一块,想要得到它的位置 代码: 瓦片类: 件类:
我正在尝试获取角色id,但我不知道如何操作,因为它不起作用: 身份验证::用户- 对象(照亮\数据库\雄辩\收集)#843(1) {["项目":受保护]=
非法尝试将非集合映射为@onetomany、@manytomany或@collectionofelements:cloudcodes.schema.generator.model.useroudata.orgunitpathid 有人能帮我提前谢谢你吗。
我如何让这个代码有圆角?那有可能吗?也将只有第一个
我想把这段代码传递给我的其他类,这样我就不必继续粘贴它了。 以下是错误: 这就是我试图调用代码的方式:
输入: 第一行:两个空间分隔的整数N和Q,分别表示数组A中的元素数和查询数 第二行:N个表示数组元素的分隔整数