if (o instanceof String s) {
var foo = s.indexOf("bar");
}
Java 17 introduced a preview of the same feature for switch statements
return switch (o) {
case Integer i -> String.format("int %d", i);
case Long l -> String.format("long %d", l);
case Double d -> String.format("double %f", d);
case String s -> String.format("String %s", s);
default -> o.toString();
};
I use the `o instanceof Class c` thing all the time in my hobby compiler on Java 16 right now. The Java 17 version will greatly simplify much of my codebase.
I thought it also supported cases like:
if (foo instanceof Bar) { // foo is typed as Bar in this block }
Is that true, or did I get that wrong?