Java 21がリリースされたので、自前のプログラムをJava 21に変更してみる。
コードの変更部分
Java 21に変更したら下記のコードが非推奨になっていた。
new Locale(locale)
new URL(referer)それぞれ下記の通り修正した。
Locale.of(locale)
URI.create(referer).toURL()newするようなコードは今後もなくなっていくのだろうか。個人的には変更後のコードの方が好きだ。
2023/10/17 追記
pom.xmlに下記設定を追記した。
-proc:full
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.11.0</version>
    <configuration>
        <compilerArgs>
            <arg>-parameters</arg>
            <arg>-proc:full</arg>
        </compilerArgs>
    </configuration>
</plugin>-XX:+EnableDynamicAgentLoading
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>3.1.2</version>
    <configuration>
        <reuseForks>false</reuseForks>
        <argLine>${argLine} -XX:+EnableDynamicAgentLoading -Dcatalina.base=${project.build.directory}</argLine>
    </configuration>
</plugin>2023/10/18 追記
Java 21にコンパイルの設定を変更すると、なぜか下記11行目ががコンパイルエラーになる。(一部抜粋)
import static org.mockito.Mockito.*;
@ExtendWith(MockitoExtension.class)
class NovelProcessTest {
    @Mock
    private MessageSourceAccessor messages;
    @Test
    void testExecute() {
        when(messages.getMessage(anyString())).thenReturn(下記のように修正するとコンパイルエラーは解消する。理由はわからない。
import static org.mockito.Mockito.*;
@ExtendWith(MockitoExtension.class)
class NovelProcessTest {
    @Mock
    private MessageSourceAccessor messages;
    @Test
    void testExecute() {
        String msg = messages.getMessage(anyString());
        when(msg).thenReturn(下記でもコンパイルエラーは解消するので、whenがメソッドの最初にあるのが駄目なのだろうか。
    @Test
    void testExecute() {
        String msg = "";
        when(messages.getMessage(anyString())).thenReturn(