Call for feedback -- switch expressions in JDK 12

Alex Buckley alex.buckley at oracle.com
Wed Apr 17 17:52:29 UTC 2019


The feedback we're looking for is "I tried switch expressions in my code 
and observed ...". For example:

https://mail.openjdk.java.net/pipermail/amber-dev/2019-March/004199.html

If anyone is blogging about their experience with switch expressions, 
feel free to share the URL here. For example, here's a great writeup of 
using switch expressions in lambdas:

http://minborgsjavapot.blogspot.com/2019/03/java-12-mapping-with-switch-expressions.html

Alex

On 4/16/2019 8:24 PM, Netroby wrote:
>     int numLetters = switch (day) {
>         case MONDAY, FRIDAY, SUNDAY -> 6,
>         case TUESDAY                -> 7,
>         case THURSDAY, SATURDAY     -> 8,
>         case WEDNESDAY              -> 9,
>         _ -> 0,
>     };
>
> Should we using  comma , instead of ;
>
> comma , means these cases the same switch.
>
> Another point, should we have an default match pattern ? using _ or default
>
>
> idea from rust match
> ```rust
> fn main() {
>      let number = 13;
>      // TODO ^ Try different values for `number`
>
>      println!("Tell me about {}", number);
>      match number {
>          // Match a single value
>          1 => println!("One!"),
>          // Match several values
>          2 | 3 | 5 | 7 | 11 => println!("This is a prime"),
>          // Match an inclusive range
>          13...19 => println!("A teen"),
>          // Handle the rest of cases
>          _ => println!("Ain't special"),
>      }
>
>      let boolean = true;
>      // Match is an expression too
>      let binary = match boolean {
>          // The arms of a match must cover all the possible values
>          false => 0,
>          true => 1,
>          // TODO ^ Try commenting out one of these arms
>      };
>
>      println!("{} -> {}", boolean, binary);
> }
>
> ```
>
> Appreciate your time.
> ----------------------------
> Netroby
>
> Alex Buckley <alex.buckley at oracle.com> 于2019年4月17日周三 上午10:00写道:
>>
>> An easy way to help move Java forward is to try out new features on real
>> code and share your experiences. We're asking for feedback on how you
>> use switch expressions, the new language feature in JDK 12:
>>
>>     int numLetters = switch (day) {
>>         case MONDAY, FRIDAY, SUNDAY -> 6;
>>         case TUESDAY                -> 7;
>>         case THURSDAY, SATURDAY     -> 8;
>>         case WEDNESDAY              -> 9;
>>     };
>>
>>     // Multiple labels per case (also allowed in switch statements)
>>     // No fallthrough with the -> form (also allowed in switch statements)
>>
>> Do you find switch expressions useful? Is anything surprising? Did you
>> turn any switch statements into switch expressions? Please let us know
>> on this list, even if the answer is "Tried it. Works fine."
>>
>> To enable switch expressions in your environment:
>> - IntelliJ IDEA 2019.1
>> https://blog.jetbrains.com/idea/2019/02/java-12-and-intellij-idea/
>> - Eclipse 4.11  https://www.eclipse.org/eclipse/news/4.11/jdt.php#Java12
>> - Apache NetBeans 11.0
>> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=103091452
>> - jshell in JDK 12  run with `--enable-preview`
>> - javac in JDK 12  run with `--release 12 --enable-preview`
>>
>> Alex


More information about the jdk-dev mailing list