クレカ決済 {} final class 現金決済 implements 決済 {} final class クレカ決済 implements 決済 {} switch (k) { case 現金決済 g -> System.out.println("現金"); case クレカ決済 c -> System.out.println("クレカ"); }
クレカ決済 {} final class 現金決済 implements 決済 {} final class クレカ決済 implements 決済 {} switch (k) { case 現金決済 g -> System.out.println("現金"); case クレカ決済 c -> System.out.println("クレカ"); } 実装するクラスが明示して列挙されているので default が不要になった!\(^o^)/
クレカ決済 {} final class 現金決済 implements 決済 {} final class クレカ決済 implements 決済 {} switch (k) { case 現金決済 g -> System.out.println("現金"); case クレカ決済 c -> System.out.println("クレカ"); } 実装するクラスが明示して列挙されているので default が不要になった!\(^o^)/ え、メリットって それだけ?
クレカ決済 {} final class 現金決済 implements 決済 {} final class クレカ決済 implements 決済 {} switch (k) { case 現金決済 g -> System.out.println("現金"); case クレカ決済 c -> System.out.println("クレカ"); } 実装するクラスが明示して列挙されているので default が不要になった!\(^o^)/ いやいや それだけじゃないんよ
{} final class 現金決済 implements 決済 {} final class クレカ決済 implements 決済 {} switch (k) { case 現金決済 g -> System.out.println("現金"); case クレカ決済 c -> System.out.println("クレカ"); }
, QR決済 {} final class 現金決済 implements 決済 {} final class クレカ決済 implements 決済 {} final class QR決済 implements 決済 {} switch (k) { case 現金決済 g -> System.out.println("現金"); case クレカ決済 c -> System.out.println("クレカ"); }
, QR決済 {} final class 現金決済 implements 決済 {} final class クレカ決済 implements 決済 {} final class QR決済 implements 決済 {} switch (k) { case 現金決済 g -> System.out.println("現金"); case クレカ決済 c -> System.out.println("クレカ"); } コンパイルフェーズで QR決済ラベルが足りない指摘をしてくれる
, QR決済 {} final class 現金決済 implements 決済 {} final class クレカ決済 implements 決済 {} final class QR決済 implements 決済 {} switch (k) { case 現金決済 g -> System.out.println("現金"); case クレカ決済 c -> System.out.println("クレカ"); } コンパイルフェーズで QR決済ラベルが足りない指摘をしてくれる 実装漏れや考慮漏れを防げる