From 6e8add6d9e5ed153445a302ac8c09ae29ce52bbd Mon Sep 17 00:00:00 2001 From: Mechti Date: Mon, 18 Mar 2024 18:30:05 +0100 Subject: [PATCH] feat: add new JEP and fix some white-space --- slides.md | 121 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 114 insertions(+), 7 deletions(-) diff --git a/slides.md b/slides.md index 5f28785..e8d6dab 100644 --- a/slides.md +++ b/slides.md @@ -537,8 +537,8 @@ switch (status) { ````
-
-
+
+
````md magic-move @@ -569,7 +569,7 @@ switch (status) { ````
-
+
````md magic-move @@ -641,7 +641,7 @@ static int countStatuses(Iterable statuses) { ````
-
+
````md magic-move @@ -676,6 +676,113 @@ switch (box) {
+--- +level: 2 +--- + + +
+

23

+

Primitive Types in Patterns, instanceof,
and switch JEP455

+

??

+
+
+ +````md magic-move + +```java +switch (x.getStatus()) { + case 0 -> "okay"; + case 1 -> "warning"; + case 2 -> "error"; + default -> "unknown status: " + x.getStatus(); +} + +``` + + +```java + +switch (x.getStatus()) { + case 0 -> "okay"; + case 1 -> "warning"; + case 2 -> "error"; + case int i -> "unknown status: " + i; +} + +``` + +```java + +switch (x.getYearlyFlights()) { + case 0 -> ...; + case 1 -> ...; + case 2 -> issueDiscount(); + case int i when i >= 100 -> issueGoldCard(); + case i -> ...; +} + +``` + +```` + +
+ +
+
+ +````md magic-move + +```java +int getPopulation() {...} +// silent potential loss of information +float pop = getPopulation(); +... + +if (i >= -128 && i <= 127) { + byte b = (byte) i; + ... +} + +``` + +```java +if (getPopulation() instanceof float pop) { + ... +} + +if (i instanceof byte b) { + ... +} + +``` + +```` + +
+ +
+ +```java +Byte b = ... +switch (b) { + // exhaustive switch + case int p -> 0; +} + +``` + +
+ +
+ + + --- layout: image-right image: /images/nurse_joy.png @@ -741,7 +848,7 @@ transition: slide-up # How do others do it? - Rust -
+
* data oriented sees shared mutable data as a very bad thing @@ -760,7 +867,7 @@ transition: slide-up
-
+
```rust @@ -789,7 +896,7 @@ pub enum Result {
-
+