-
Bug
-
Resolution: Not an Issue
-
P4
-
None
-
21
-
generic
-
generic
ADDITIONAL SYSTEM INFORMATION :
My JDK is 21.0.1
A DESCRIPTION OF THE PROBLEM :
switch on enum value does not work if an enum-value overrides a method
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Run test below
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
enum value should be properly recognized by switch-case.
ACTUAL -
default-branch is run instead of "B"
---------- BEGIN SOURCE ----------
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
class SimpleTest {
enum TestEnum {
A, B {
@Override
public void foo() {
}
};
public void foo(){
}
}
@Test
void test() {
Assertions.assertEquals("B",
switch (TestEnum.B) {
case A -> "A";
case B -> "B";
case null -> "null";
default -> "default";
});
}
}
---------- END SOURCE ----------
My JDK is 21.0.1
A DESCRIPTION OF THE PROBLEM :
switch on enum value does not work if an enum-value overrides a method
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Run test below
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
enum value should be properly recognized by switch-case.
ACTUAL -
default-branch is run instead of "B"
---------- BEGIN SOURCE ----------
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
class SimpleTest {
enum TestEnum {
A, B {
@Override
public void foo() {
}
};
public void foo(){
}
}
@Test
void test() {
Assertions.assertEquals("B",
switch (TestEnum.B) {
case A -> "A";
case B -> "B";
case null -> "null";
default -> "default";
});
}
}
---------- END SOURCE ----------