VSCode中使用Queue出现类型无法解析错误,请求帮助
解决Java 15中Record定义与Queue使用的类型解析错误
错误原因
- Record语法完全错误:你把Record的关键字
record和自定义类型名的位置搞反了,正确格式是record 类型名(字段列表){},而非类型名 类型名(...)。 - 内部Record在Java 15中默认具备静态特性,不需要额外添加
static修饰符。
修正后的代码
import java.util.LinkedList; import java.util.Queue; public class theQueue { public static void main(String[] args) { Queue<Human> market = new LinkedList<>(); market.add(new Human("Alex", 21)); } // 符合Java 15规范的Record定义 record Human(String name, int age){} }
说明
- 按照
record 类型名(字段)的正确语法定义Record,Human是自定义类型名,避开了record关键字的冲突。 - 同步修改Queue的泛型参数和实例化对象的类型为
Human,解决类型无法解析的问题。 - 若坚持使用
recordForHuman作为类型名,可将Record定义改为record recordForHuman(String name, int age){},同时将Queue的泛型和实例化代码对应替换为recordForHuman即可(但不推荐,不符合Java大驼峰命名规范)。
内容的提问来源于stack exchange,提问作者marcin2x4
相关产品推荐
相关产品推荐

