179. Hooking sealed classes in switch
This is not the first time in this book that we’ve presented an example of sealed classes and switch expressions. In Chapter 2, Problem 66, we briefly introduced such an example via the sealed Player interface with the goal of covering completeness (type coverage) in pattern labels for switch.
If, at that time, you found this example confusing, I’m pretty sure that now it is clear. However, let’s keep things fresh and see another example starting from this abstract base class:
public abstract class TextConverter {}
And, we have three converters available, as follows:
final public class Utf8 extends TextConverter {}
final public class Utf16 extends TextConverter {}
final public class Utf32 extends TextConverter {}
Now, we can write a switch expression to match these TextConverter instances, as follows:
public static String convert(
TextConverter converter, String text) {
return switch (converter...