Files
javademos/patterns/output/07-primitive-patterns.txt
T
Claude bc91b9c8d0 Add patterns module: pattern matching from JDK 21 to 27
Type, record and primitive patterns, guards, sealed exhaustiveness, MatchException via separate compilation, and eight captured transcripts.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01TF9JWFvJSNm6HVzswzZU5a
2026-09-24 11:50:40 +00:00

88 lines
3.8 KiB
Plaintext

$ javac preview/PrimitiveInstanceof.java (25.0.4.1+1-LTS)
preview/PrimitiveInstanceof.java:3: error: primitive patterns are a preview feature and are disabled by default.
if (i instanceof byte b) return i + " fits in a byte: " + b;
^
(use --enable-preview to enable primitive patterns)
1 error
$ javac preview/PrimitiveInstanceof.java (27+35)
preview/PrimitiveInstanceof.java:3: error: primitive patterns are a preview feature and are disabled by default.
if (i instanceof byte b) return i + " fits in a byte: " + b;
^
(use --enable-preview to enable primitive patterns)
1 error
$ javac --enable-preview --release 25 preview/PrimitiveInstanceof.java && java --enable-preview PrimitiveInstanceof (25.0.4.1+1-LTS)
100 fits in a byte: 100
1000 fits in a short: 1000
100000 needs an int
0.5 converts to float 0.5 without loss
0.1 does NOT convert to float without loss
$ javac --enable-preview --release 27 preview/PrimitiveInstanceof.java && java --enable-preview PrimitiveInstanceof (27+35)
100 fits in a byte: 100
1000 fits in a short: 1000
100000 needs an int
0.5 converts to float 0.5 without loss
0.1 does NOT convert to float without loss
$ javac --enable-preview --release 25 preview/PrimitiveSwitch.java && java --enable-preview PrimitiveSwitch (25.0.4.1+1-LTS)
OK | other success 204 | client error 404 | something else 500
yes no
zero one many (9223372036854775807)
$ javac --enable-preview --release 27 preview/PrimitiveSwitch.java && java --enable-preview PrimitiveSwitch (27+35)
OK | other success 204 | client error 404 | something else 500
yes no
zero one many (9223372036854775807)
$ javac --enable-preview --release 25 preview/PrimitiveInRecord.java && java --enable-preview PrimitiveInRecord (25.0.4.1+1-LTS)
whole degrees: 21
fractional: 21.5
not a reading
$ javac --enable-preview --release 27 preview/PrimitiveInRecord.java && java --enable-preview PrimitiveInRecord (27+35)
whole degrees: 21
fractional: 21.5
not a reading
$ javac --enable-preview --release 25 preview/PrimitiveEdges.java && java --enable-preview PrimitiveEdges (25.0.4.1+1-LTS)
0.0 int? true float? true
-0.0 int? false float? true
NaN int? false float? true
1.6777217E7 int? true float? false
1.0E10 int? false float? true
3.0 int? true float? true
1099511627776 instanceof int? false
Object holding Integer matches int pattern: 42
Short in Object does not match int
65 as char: A
$ javac --enable-preview --release 27 preview/PrimitiveEdges.java && java --enable-preview PrimitiveEdges (27+35)
0.0 int? true float? true
-0.0 int? false float? true
NaN int? false float? true
1.6777217E7 int? true float? false
1.0E10 int? false float? true
3.0 int? true float? true
1099511627776 instanceof int? false
Object holding Integer matches int pattern: 42
Short in Object does not match int
65 as char: A
$ javac --enable-preview --release 25 preview/BoxedToNarrower.java && java --enable-preview BoxedToNarrower (25.0.4.1+1-LTS)
preview/BoxedToNarrower.java:4: error: incompatible types: Integer cannot be converted to byte
if (boxed instanceof byte b) System.out.println("fits a byte: " + b); // Integer to byte is not allowed
^
1 error
Error: Could not find or load main class BoxedToNarrower
Caused by: java.lang.ClassNotFoundException: BoxedToNarrower
$ javac --enable-preview --release 27 preview/BoxedToNarrower.java && java --enable-preview BoxedToNarrower (27+35)
preview/BoxedToNarrower.java:4: error: incompatible types: Integer cannot be converted to byte
if (boxed instanceof byte b) System.out.println("fits a byte: " + b); // Integer to byte is not allowed
^
1 error
Error: Could not find or load main class BoxedToNarrower
Caused by: java.lang.ClassNotFoundException: BoxedToNarrower