void (String[] args) { Cln s = int[]::clone; IA a = int[]::new; <error descr="Incompatible types. Found: '<method reference>', required: 'OnArrayTest.I'">I i = int[]::new;</error> Len<String> strLen = String[]::<error descr="Cannot resolve method 'length'">length</error>; ToStr<Integer> toStr = Integer[]::toString; ArrayReturnType<String[]> a1 = String[]::new; ArrayReturnType<String[][]> a2 = String[][]::new; ArrayReturnType<String[]> a3 = <error descr="Bad return type in method reference: cannot convert int[] to java.lang.String[]">int[]::new</error>; ObjectArrayReturnType a4 = Foo<?>[]::new; ObjectArrayReturnType a5 = <error descr="Generic array creation">Foo<? extends String>[]</error>::new; }