From ca262f65e61a8ea1dac4d85dd2f88f6ba392d77a Mon Sep 17 00:00:00 2001 From: Trisha Date: Thu, 5 Dec 2024 15:15:11 +1100 Subject: [PATCH 1/4] Using Java 23 --- .idea/dataSources.local.xml | 2 +- .idea/misc.xml | 2 +- java-samples/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.idea/dataSources.local.xml b/.idea/dataSources.local.xml index e5aba66..495caef 100644 --- a/.idea/dataSources.local.xml +++ b/.idea/dataSources.local.xml @@ -1,6 +1,6 @@ - + #@ diff --git a/.idea/misc.xml b/.idea/misc.xml index 69379b4..9976058 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -9,7 +9,7 @@ - + diff --git a/java-samples/pom.xml b/java-samples/pom.xml index 21c7628..a8c9f2d 100644 --- a/java-samples/pom.xml +++ b/java-samples/pom.xml @@ -9,7 +9,7 @@ 1.0-SNAPSHOT - 21 + 23 UTF-8 ${java.version} ${java.version} From 37345ebd0d475829ddc49d8df8095b0371819cd4 Mon Sep 17 00:00:00 2001 From: Trisha Date: Thu, 5 Dec 2024 15:15:35 +1100 Subject: [PATCH 2/4] Adding examples of Java 22 features; removing use of deprecated feature that was actually removed! --- .../code/jdk22/ImplicitlyDeclaredClass.java | 4 ++ .../code/jdk22/UnnamedVariables.java | 37 +++++++++++++++++++ .../jetbrains/inspections/Deprecation.java | 2 - 3 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 java-samples/src/main/java/com/jetbrains/code/jdk22/ImplicitlyDeclaredClass.java create mode 100644 java-samples/src/main/java/com/jetbrains/code/jdk22/UnnamedVariables.java diff --git a/java-samples/src/main/java/com/jetbrains/code/jdk22/ImplicitlyDeclaredClass.java b/java-samples/src/main/java/com/jetbrains/code/jdk22/ImplicitlyDeclaredClass.java new file mode 100644 index 0000000..66a48d1 --- /dev/null +++ b/java-samples/src/main/java/com/jetbrains/code/jdk22/ImplicitlyDeclaredClass.java @@ -0,0 +1,4 @@ + +void main() { + System.out.println("Hello, World!"); +} \ No newline at end of file diff --git a/java-samples/src/main/java/com/jetbrains/code/jdk22/UnnamedVariables.java b/java-samples/src/main/java/com/jetbrains/code/jdk22/UnnamedVariables.java new file mode 100644 index 0000000..063181d --- /dev/null +++ b/java-samples/src/main/java/com/jetbrains/code/jdk22/UnnamedVariables.java @@ -0,0 +1,37 @@ +package com.jetbrains.code.jdk22; + +import com.jetbrains.entity.Order; + +import java.awt.Point; +import java.util.Collection; +import java.util.List; +import java.util.concurrent.ArrayBlockingQueue; + +public class UnnamedVariables { + static int suggestReplacingUnusedVariableWithUnderscore(Iterable orders) { + int total = 0; + for (Order order : orders) // order is unused + total++; + return total; + } + + static void demoUseOfUnderscore() { + var q = new ArrayBlockingQueue(3, true, List.of(1, 2, 3)); + while (q.size() >= 3) { + int x = q.remove(); + int y = q.remove(); + int _ = q.remove(); // z is unused + new Point(x, y); + } + } + + static int demoUseOfUnderscoreInException() { + String s = "Some string"; + try { + return Integer.parseInt(s); + } catch (NumberFormatException _) { + System.out.println("Bad number: " + s); + return 0; + } + } +} diff --git a/java-samples/src/main/java/com/jetbrains/inspections/Deprecation.java b/java-samples/src/main/java/com/jetbrains/inspections/Deprecation.java index f8f21a6..3534ee5 100644 --- a/java-samples/src/main/java/com/jetbrains/inspections/Deprecation.java +++ b/java-samples/src/main/java/com/jetbrains/inspections/Deprecation.java @@ -6,8 +6,6 @@ public class Deprecation { private void deprecationWarnings() { Thread.currentThread().stop(); - Thread.currentThread().countStackFrames(); - final MyClass myClass = new MyClass(); myClass.deprecatedMethod(); } From 7f4ca17df5ffd1d703a431a752ee1f81a90c9a2b Mon Sep 17 00:00:00 2001 From: Trisha Date: Thu, 5 Dec 2024 15:20:57 +1100 Subject: [PATCH 3/4] Updating GitHub Actions to use Java 23 --- .github/workflows/maven.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 0346a41..96c39bd 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -16,10 +16,10 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Set up JDK 21 + - name: Set up JDK 23 uses: actions/setup-java@v2 with: - java-version: 21 + java-version: 23 distribution: 'temurin' - name: Build Java examples with Maven run: mvn -B verify --file java-samples/pom.xml From ea1fd5430751cb80a6955393e4f90e9f2dfb4286 Mon Sep 17 00:00:00 2001 From: Trisha Date: Thu, 5 Dec 2024 15:32:51 +1100 Subject: [PATCH 4/4] Example for Java 23 --- .../code/jdk23/PrimitiveTypesInSwitch.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 java-samples/src/main/java/com/jetbrains/code/jdk23/PrimitiveTypesInSwitch.java diff --git a/java-samples/src/main/java/com/jetbrains/code/jdk23/PrimitiveTypesInSwitch.java b/java-samples/src/main/java/com/jetbrains/code/jdk23/PrimitiveTypesInSwitch.java new file mode 100644 index 0000000..456836e --- /dev/null +++ b/java-samples/src/main/java/com/jetbrains/code/jdk23/PrimitiveTypesInSwitch.java @@ -0,0 +1,20 @@ +package com.jetbrains.code.jdk23; + +public class PrimitiveTypesInSwitch { + private void type(Message x) { + switch (x.getStatus()) { + case 0 -> System.out.println("okay"); + case 1 -> System.out.println("warning"); + case 2 -> System.out.println("error"); + default -> System.out.println("unknown status: " + x.getStatus()); + } + } + + private static class Message { + private int status; + + public int getStatus() { + return status; + } + } +}