Java 14记录和数组
给出以下代码: 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)。 还是有其他解决方案?