-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Expand file tree
/
Copy pathTest.java
More file actions
47 lines (37 loc) · 1.01 KB
/
Test.java
File metadata and controls
47 lines (37 loc) · 1.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
public class Test {
interface I { String get(); }
static class A implements I { public String afield; public A(String a) { this.afield = a; } public String get() { return afield; } }
static class B implements I { public String bfield; public B(String b) { this.bfield = b; } public String get() { return bfield; } }
public static String sink(String s) { return s; }
public static void test(boolean inp) {
I i = inp ? new A("A") : new B("B");
switch(i) {
case A a:
sink(a.get());
break;
case B b:
sink(b.get());
break;
default:
break;
}
switch(i) {
case A a -> sink(a.get());
case B b -> sink(b.get());
default -> { }
}
var x = switch(i) {
case A a:
yield sink(a.get());
case B b:
yield sink(b.get());
default:
yield "Default case";
};
var y = switch(i) {
case A a -> sink(a.get());
case B b -> sink(b.get());
default -> "Default case";
};
}
}