Java 14 记录和数组 List< Integer >解决方法
给定以下代码:
public static void main(String[] args) {
record Foo(int[] ints){}
var ints = new int[]{1, 2};
var foo = new Foo(ints);
System.out.println(foo); // Foo[ints=[I@6433a2]
System.out.println(new Foo(new int[]{1,2}).equals(new Foo(new int[]{1,2}))); // false
System.out.println(new Foo(ints).equals(new Foo(ints))); //true
System.out.println(foo.equals(foo)); // true
}
显然,似乎使用了数组的方法(而不是静态方法,或)。toString
equals
Arrays::equals
Arrays::deepEquals
Array::toString
所以我想Java 14 Records(JEP 359)不能很好地与数组一起使用,相应的方法必须使用IDE生成(至少在IntelliJ中,默认情况下生成“有用”的方法,即它们使用中的静态方法)。Arrays
还是有其他解决方案?