我从这里下载了 JDK19 的候选版本https://jdk.java.net/19/以尝试一下那里实现的新记录模式,但我遇到了一些问题。在我的测试中,我写了一个基于密封接口加记录的Optional版本,方式如下:
package tests.patterns;
import java.util.Objects;
public class TestRecordPatter
{
public static void main(final String[] args)
{
final Opt<String> opt1 = computeAnswer(23);
final String answer1 = switch (opt1) {
case Opt.Some<String>(String ans) -> ans;
case Opt.None __ -> "no answer";
default -> throw new IllegalStateException("This should not happen"); // A
};
System.out.println(answer1);
final Opt<String> opt2 = computeAnswer(35);
final Object answer2 = switch (opt2) { // B
case Opt.Some<String>(var ans) -> ans; // C
case Opt.None __ -> …
Run Code Online (Sandbox Code Playgroud)