Skip to content

Commit 56e5b57

Browse files
committed
java-12
1 parent d615968 commit 56e5b57

File tree

3 files changed

+136
-0
lines changed

3 files changed

+136
-0
lines changed

java-12/pom.xml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0"
2+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
4+
http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
<groupId>com.mkyong</groupId>
7+
<artifactId>java12</artifactId>
8+
<version>1.0</version>
9+
10+
<name>java-12</name>
11+
<url>https://www.mkyong.com</url>
12+
13+
<properties>
14+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
15+
<maven.compiler.source>12</maven.compiler.source>
16+
<maven.compiler.target>12</maven.compiler.target>
17+
<java.version>12</java.version>
18+
</properties>
19+
20+
<dependencies>
21+
</dependencies>
22+
23+
<build>
24+
<finalName>java12</finalName>
25+
<plugins>
26+
<plugin>
27+
<groupId>org.apache.maven.plugins</groupId>
28+
<artifactId>maven-compiler-plugin</artifactId>
29+
<version>3.8.0</version>
30+
<configuration>
31+
<source>${java.version}</source>
32+
<target>${java.version}</target>
33+
</configuration>
34+
</plugin>
35+
</plugins>
36+
</build>
37+
</project>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.mkyong.java12;
2+
3+
public class HelloApp {
4+
5+
public static void main(String[] args) {
6+
System.out.println("Hello Java 12");
7+
}
8+
9+
}
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
package com.mkyong.java12.jep325;
2+
3+
/*
4+
javac --enable-preview --release 12 Example.java
5+
java --enable-preview Example
6+
*/
7+
public class SwitchExample {
8+
9+
public static void main(String[] args) {
10+
11+
System.out.println(getNumber(1));
12+
System.out.println(getNumber(3));
13+
System.out.println(getNumber(6));
14+
System.out.println(getNumber(10));
15+
16+
}
17+
18+
// Traditional switch statement
19+
private static String getNumber(int number) {
20+
String result = "";
21+
switch (number) {
22+
case 1:
23+
case 2:
24+
result = "one or two";
25+
break;
26+
case 3:
27+
result = "three";
28+
break;
29+
case 4:
30+
case 5:
31+
case 6:
32+
result = "four or five or six";
33+
break;
34+
default:
35+
result = "unknown";
36+
}
37+
;
38+
return result;
39+
}
40+
41+
// Multiple case labels
42+
private static String getNumberMultipleCase(int number) {
43+
String result = "";
44+
switch (number) {
45+
case 1, 2:
46+
result = "one or two";
47+
break;
48+
case 3:
49+
result = "three";
50+
break;
51+
case 4, 5, 6:
52+
result = "four or five or six";
53+
break;
54+
default:
55+
result = "unknown";
56+
}
57+
;
58+
return result;
59+
}
60+
61+
// break with value is dropped in favor of `yield` in Java 13.
62+
/*private static String getNumberViaBreak(int number) {
63+
String result = switch (number) {
64+
case 1:
65+
case 2:
66+
break "one or two";
67+
case 3:
68+
break "three";
69+
case 4:
70+
case 5:
71+
case 6:
72+
break "four or five or six";
73+
default:
74+
break "unknown";
75+
};
76+
return result;
77+
}*/
78+
79+
// arrow, label rules, case L
80+
private static String getNumberViaArrow(int number) {
81+
String result = switch (number) {
82+
case 1, 2 -> "one or two";
83+
case 3 -> "three";
84+
case 4, 5, 6 -> "four or five or six";
85+
default -> "unknown";
86+
};
87+
return result;
88+
}
89+
90+
}

0 commit comments

Comments
 (0)