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...