Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Java12/Examples"
(→NOTE: THE PAGE IS UNDER CONSTRUCTION) |
|||
(25 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | |||
− | |||
This is an informal page listing examples of features that are implemented by the Java 12 Support. You are welcome to try out these examples. If you find bugs, please file a bug after checking for a duplicate entry [https://bugs.eclipse.org/bugs/buglist.cgi?cmdtype=dorem&list_id=18507270&namedcmd=J12.Open&remaction=run&sharer_id=152344 here] | This is an informal page listing examples of features that are implemented by the Java 12 Support. You are welcome to try out these examples. If you find bugs, please file a bug after checking for a duplicate entry [https://bugs.eclipse.org/bugs/buglist.cgi?cmdtype=dorem&list_id=18507270&namedcmd=J12.Open&remaction=run&sharer_id=152344 here] | ||
+ | <b>NOTE:</b> | ||
+ | * Switch expression, Enhanced switch statement and Multi-constant case labels are <b>Preview features</b> in Java 12. They are not enabled by default and can by enabled using <b>--enable-preview</b>. | ||
+ | * In Eclipse, <b>--enable-preview</b> can be enabled from the Preferences. It is implicitly added while launching a java program if the feature has been enabled for the project/workspace. | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 33: | Line 34: | ||
<br> | <br> | ||
[[File:j12.compliance.png]] | [[File:j12.compliance.png]] | ||
− | |12 is shown in the drop down list | + | |12 is shown in the drop down list. |
+ | A checkbox to enable preview features is available on the preference page. | ||
+ | |- | ||
+ | ! colspan="3" | Basic Necessity : Compilation and Error Reporting | ||
+ | |- | ||
+ | ! scope="row" | Positive Compilation 1 (Switch Statement with multi-label case with colon) | ||
+ | | Use the following code: | ||
+ | <source lang="java"> | ||
+ | public class X { | ||
+ | public void foo(int i) { | ||
+ | switch (i) { | ||
+ | case 0, 1, 2: System.out.println("Hello"); | ||
+ | default : System.out.println("World"); | ||
+ | } | ||
+ | } | ||
+ | public static void main(String[] argv) { | ||
+ | new X().foo(2); | ||
+ | } | ||
+ | }</source> | ||
+ | |||
+ | <br> | ||
+ | <br> | ||
+ | [[File:switch-statement-multi.png]] | ||
+ | | Code compiles (with a preview warning) and while running prints both "Hello" "World" | ||
+ | |- | ||
+ | ! scope="row" | Positive Compilation 2 (Switch Statement with case with arrow) | ||
+ | | Use the following code: | ||
+ | <source lang="java"> | ||
+ | public class X { | ||
+ | @SuppressWarnings("preview") | ||
+ | public void foo(int i) { | ||
+ | switch (i) { | ||
+ | case 2 -> System.out.println("Hello"); | ||
+ | default -> System.out.println("World"); | ||
+ | } | ||
+ | } | ||
+ | public static void main(String[] argv) { | ||
+ | new X().foo(2); | ||
+ | } | ||
+ | }</source> | ||
+ | |||
+ | <br> | ||
+ | <br> | ||
+ | [[File:switch-statement-arrow.png]] | ||
+ | | Code compiles (with a preview warning) and while running prints only "Hello" (because a break is implicit after every case with an arrow. | ||
+ | |- | ||
+ | ! scope="row" | Positive Compilation (Switch Expression) | ||
+ | | Use the following code: | ||
+ | <source lang="java"> | ||
+ | public class Test { | ||
+ | |||
+ | enum Day { | ||
+ | MON, TUE, WED, THUR, FRI, SAT, SUN | ||
+ | }; | ||
+ | |||
+ | @SuppressWarnings("preview") | ||
+ | public String getDay_1 (Day today) { | ||
+ | String day = switch(today) { | ||
+ | case MON, TUE, WED, THUR, FRI -> "Weekday"; | ||
+ | case SAT, SUN -> "Weekend"; | ||
+ | }; | ||
+ | return day; | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | <br> | ||
+ | <br> | ||
+ | [[File:switch-exp.compile.png]] | ||
+ | | Code compiles | ||
+ | |- | ||
+ | ! scope="row" | Compiler error Case | ||
+ | | | ||
+ | <source lang="java"> | ||
+ | public class Test { | ||
+ | |||
+ | enum Day { | ||
+ | MON, TUE, WED, THUR, FRI, SAT, SUN | ||
+ | }; | ||
+ | |||
+ | public String getDay_1 (Day today) { | ||
+ | String day = switch(today) { | ||
+ | case MON, TUE, WED, THUR, FRI: break "Weekday"; | ||
+ | case SAT, SUN: break "Weekend"; | ||
+ | }; | ||
+ | return day; | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
+ | <br> | ||
+ | <br> | ||
+ | [[File:enable-preview.error.png]] | ||
+ | | Compiler error is shown for preview feature. | ||
+ | Quick fix is available to enable the preview feature in the preferences. | ||
+ | |- | ||
+ | ! scope="row" | Compiler Warning Case | ||
+ | | | ||
+ | <source lang="java"> | ||
+ | public class Test { | ||
+ | |||
+ | enum Day { | ||
+ | MON, TUE, WED, THUR, FRI, SAT, SUN | ||
+ | }; | ||
+ | |||
+ | public String getDay_1 (Day today) { | ||
+ | String day = switch(today) { | ||
+ | case MON, TUE, WED, THUR, FRI: break "Weekday"; | ||
+ | case SAT, SUN: break "Weekend"; | ||
+ | }; | ||
+ | return day; | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
+ | <br> | ||
+ | <br> | ||
+ | [[File:switch.preview.warning.compile.png]] | ||
+ | | Compiler warning is shown for preview feature | ||
+ | |- | ||
+ | ! scope="row" | Compiler Error Case | ||
+ | | | ||
+ | <source lang="java"> | ||
+ | public class Test { | ||
+ | |||
+ | enum Day { | ||
+ | MON, TUE, WED, THUR, FRI, SAT, SUN | ||
+ | }; | ||
+ | |||
+ | @SuppressWarnings("preview") | ||
+ | public String getDay_1 (Day today) { | ||
+ | String day = switch(today) { | ||
+ | case MON : break "Weekday"; | ||
+ | case SAT, SUN : break "Weekend"; | ||
+ | }; | ||
+ | return day; | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
+ | [[File:switch.cover-all-cases.error.png]] | ||
+ | | Compiler error is shown | ||
|- | |- |
Latest revision as of 00:23, 20 March 2019
This is an informal page listing examples of features that are implemented by the Java 12 Support. You are welcome to try out these examples. If you find bugs, please file a bug after checking for a duplicate entry here
NOTE:
- Switch expression, Enhanced switch statement and Multi-constant case labels are Preview features in Java 12. They are not enabled by default and can by enabled using --enable-preview.
- In Eclipse, --enable-preview can be enabled from the Preferences. It is implicitly added while launching a java program if the feature has been enabled for the project/workspace.