/* * @test /nodynamiccopyright/ * @bug 4974927 8064464 * @summary The compiler was allowing void types in its parsing of conditional expressions. * @author tball * * @compile/fail/ref=ConditionalWithVoid.out -XDrawDiagnostics ConditionalWithVoid.java
*/ publicclass ConditionalWithVoid { publicvoid test(Object o, String s) { // Should fail to compile since Object.wait() has a void return type. Poly case.
System.out.println(o instanceof String ? o.hashCode() : o.wait()); // Should fail to compile since Object.wait() has a void return type. Standalone case.
(o instanceof String ? o.hashCode() : o.wait()).toString(); // Should fail to compile since Object.wait() has a void return type. Poly case.
System.out.println(switch (s) {case"" -> o.hashCode(); default -> o.wait();}); // Should fail to compile since Object.wait() has a void return type. Standalone case.
(switch (s) {case"" -> o.hashCode(); default -> o.wait();}).toString();
}
}
¤ Dauer der Verarbeitung: 0.22 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.