相关疑难解决方法(0)

"数组初始化程序需要一个明确的目标类型" - 为什么?

遵循JEP 286:局部变量类型推断描述

我想知道,引入这种限制的原因是什么,如:

Main.java:199: error: cannot infer type for local variable k

    var k = { 1 , 2 };
        ^   
(array initializer needs an explicit target-type)
Run Code Online (Sandbox Code Playgroud)

所以对我来说逻辑上它应该是:

var k = {1, 2}; // Infers int[]
var l = {1, 2L, 3}; // Infers long[]
Run Code Online (Sandbox Code Playgroud)

因为Java编译器已经可以正确地推断出数组的类型:

void decide() {
    arr(1, 2, 3);  // call  void arr(int ...arr)
    arr(1, 2L, 3); // call  void arr(long ...arr)
}

void arr(int ...arr) {
}

void arr(long ...arr) {
} …
Run Code Online (Sandbox Code Playgroud)

java arrays local-variables java-10

25
推荐指数
2
解决办法
892
查看次数

lombok 或 java 'var' 有用的用例

var当您浏览代码并调查乍一看不清楚的代码时,这并不是很少。当开发人员使用非自描述方法名称时,您必须花一些时间来了解变​​量的真实类型。如果你使用 lombok 的,var你将与​​ lombok 紧密结合,所以我不会在我的代码中经常使用它

var在 java 中使用的有用用例是什么?

java var lombok java-10

3
推荐指数
1
解决办法
2049
查看次数

如何在 Java 中创建函数列表?

如何在 Java 17(或类似版本)中创建数组或函数列表?

预期的假设用途:

    var myListOfFunctions = List.of(this::myFunction, MyClass::someOtherFunction);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

对象不是函数式接口

我打算流式传输这些函数并向它们传递相同的数据。

java list java-17

0
推荐指数
1
解决办法
344
查看次数

标签 统计

java ×3

java-10 ×2

arrays ×1

java-17 ×1

list ×1

local-variables ×1

lombok ×1

var ×1