【发布时间】:2023-01-13 18:29:33
【问题描述】:
根据JEP 395,可以使用带有附加构造函数的记录:
public record Aliases(List<String> value) {
public Aliases(Integer raw) {
this(List.of(raw.toString()));
}
}
或者将多个值作为数组:
public record Aliases(List<String> value) {
public Aliases(Integer... raws) {
this(Arrays.stream(raws).map(Object::toString).toList());
}
}
使用类型列表不起作用的地方:
public record Aliases(List<String> value) {
public Aliases(List<Integer> rawList) {
this(rawList.stream().map(Object::toString).toList());
}
}
它说
错误:记录别名中的无效规范构造函数
我想了解背后发生的事情以及为什么它不起作用?
【问题讨论】:
-
这与记录无关,它基于“旧”擦除规则:Method has the same erasure as another method in type
标签: java generics java-record