この記事を読むのに必要な時間:およそ 0.5 分
練習問題の解答について
(2022年7月15日更新)
本書に掲載している「練習問題」の解答を下記にて掲載します。
お詫びと訂正(正誤表)
本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。
P.31:「最初のプログラムを書いてみよう」の前に下記を追加
Touch Barを搭載していないキーボードを使っている場合は,fnキーを押さずにファンクションキーを使えるよう,「キーボード」→「キーボード」→「F1,F2などのキーを標準のファンクションキーとして使用」にチェックを入れることを検討してください(図2.42)。これにチェックが入っていない場合,ファンクションキーを押す操作を行う場合はfnキーを押すことを覚えておいてください。
▼図2.42 fnキーを押さなくてもファンクションキーを使えるようにする設定
P.32:「プロジェクト形式の選択」
最新版のIntelliJ IDEAでは新規プロジェクトのダイアログのデザインが少し異なっています。
紙面のスクリーンショットを参考にすると,「Maven Archtype」を選んでしまいがちですが,下記のように一番上の「新規プロジェクト」を選択してください。
P.458:■application. propertiesファイルに設定を追加
誤 |
spring.datasource.initialization-mode=always
|
正 |
spring.sql.init.mode=always
|
※spring.datasource.initialization-modeは最新版では廃止されました。
訂正情報
※電子版では修正済み
P.18:コラム8行目
誤 |
再び用途を問わず無償で |
正 |
再びデスクトップ用途では無償で |
P.59:本文6行目
「、戻り値の種類」は不要です。
P.136:「7.2.3 else if」
誤 |
下部のソースコードの上にキャプションを追加 |
正 |
src/main/java/projava/IfSample.java |
P.168:練習
この練習問題は削除します。
P.205:「基本のStream処理」本文3行目
P.313:1行目のソースコード
誤 |
System.out.println("こんにちは%sさん".formatted(p.getName()));
|
正 |
System.out.println("こんにちは%sさん".formatted(p.getName()));
System.out.println(p);
|
P.313:本文1行目
誤 |
実行すると、インタフェースのときと同じく次のように表示されます。 |
正 |
実行すると、次のように表示されます。 |
「インタフェースのときと同じく」は不要です。
P.313:実行結果
誤 |
|
正 |
こんにちはkisさん
projava.InheritSample$Student@3c153a1
こんにちはhosoyaさん
projava.InheritSample$Teacher@b62fe6d |
P.315:ソースコード
誤 |
System.out.println("こんにちは%sさん".formatted(p.getName()));
|
正 |
System.out.println("こんにちは%sさん".formatted(p.getName()));
System.out.println(p);
|
P.318:「15.1.4 メソッドのオーバーライド」本文1〜2行目
誤 |
projava.InheritSample$Student@27d6c5e0 のような表示
|
正 |
projava.InheritSample$Student@3c153a1 のような表示
|
P.367:最終行のソースコード
誤 |
assertEquals(6, new Calc().add(2, 4), "2 + 4 = 8");
|
正 |
assertEquals(6, new Calc().add(2, 4), "2 + 4 = 6");
|
P.368:図18.7 ● テストが失敗した状態
正 |
|
P.421:図21.6 ● Spring Initializr
正 |
|
P.421:表21.1 ● タスク管理アプリケーション用の設定 Spring Bootの行
誤 |
2.6.3、または「SNAPSHOT」や「M1」などが付いていない最新バージョン |
正 |
2.6.3 |
「、または「SNAPSHOT」や「M1」などが付いていない最新バージョン」は不要です。
P.421:表21.1 ● タスク管理アプリケーション用の設定 Dependenciesの行
誤 |
Spring Web |
正 |
ADD DEPENDENCIES…を押してSpring Webを追加 |
P.437:本文7〜8行目
誤 |
メソッドと同様の理由でインスタンス変数として |
正 |
メソッドと同様の理由でstatic変数ではなくインスタンス変数として |
P.439:「21.4.3 タスクを一覧表示するエンドポイントの作成」本文 下から6行目
誤 |
addTask メソッドと同様に |
正 |
addItem メソッドと同様に |
P.458:■ application.propertiesファイルに設定を追加 最終行
誤 |
spring.datasource.initialization-mode=always
|
正 |
spring.sql.init.mode=always
※バージョン2.4.x以前では「spring.datasource.initialization-mode=always」
|
P.459:表22.1 ● application.propertiesファイルの設定項目 項目名「spring.datasource.initialization-mode」
誤 |
spring.datasource.initialization-mode
|
正 |
※バージョン2.4.x以前では「spring.datasource.initialization-mode」 |
P.459:本文最終行
誤 |
spring.datasource.initialization-modeについては後ほど説明します。 |
正 |
spring.sql.init.mode※については後ほど説明します。
※バージョン2.4.x以前では「spring.datasource.initialization-mode」 |
P.470:「22.3.3 テーブル初期化用のスクリプトを用意する」本文3行目
誤 |
spring.datasource.initialization-mode プロパティの値 |
正 |
spring.sql.init.mode※ プロパティの値
※バージョン2.4.x以前では「spring.datasource.initialization-mode」 |
P.v:本文6行目
誤 |
設定によっては「\」が「¥」が |
正 |
設定によっては「\」が「¥」 |
「が」が不要です。
P.4:本文下から4行目
誤 |
Java Development Environment |
正 |
Java Development Kit |
P.21:本文3行目
「0」が不要です。
P.21:本文4行目
「0」が不要です。
P.28:最下部「MEMO」欄
誤 |
この本では、以降の解説は日本語化を行った状態のIntelliJIDEAの画面で行っていますが、英語表記で困らない方、またはスキルアップのため英語に慣れたい方は是非英語のままで利用してみてください。 |
正 |
この本では、以降は日本語化を行った状態のIntelliJ IDEAの画面を掲載しています。英語表記で困らない方や、スキルアップのため英語に慣れたい方は是非英語のままで利用してみてください。
一周目を日本語で演習し、二周目は英語で演習することで英語に慣れていく方法もお勧めです。 |
P.32:本文下から6行目
誤 |
Software Development Tool |
正 |
Software Development Kit |
P.88:「練習3.」
誤 |
String.formatted("%tY年", today)を |
正 |
String.format("%tY年", today)を |
P.153:本文4行目
誤 |
student ==> [kis, math, 80]
|
正 |
|
P.177:本文10行目
誤 |
System.out.print("o".repeat(i));
|
正 |
System.out.print("O".repeat(i));
|
P.188:src/main/java/projava/ForEachListSample.java 2行目
誤 |
package projava;
public class ForEachListSample {
|
正 |
package projava;
import java.util.List;
public class ForEachListSample {
|
P.236:実行結果
P.272:図13.1キャプション
P.309:「14.3.3 コメント」前のパラグラフ
誤 |
このときIntelliJ IDEAのリファクタリング機能が使えます。リファクタリング機能については、第19章「IntelliJ IDEAを使いこなす」で説明します。クラスが多くなってきたらパッケージに分類します。何度か経験すると、最初からある程度の目安がつくでしょう。 |
正 |
クラスが多くなってきたらパッケージに分類します。何度か経験すると、最初からある程度の目安がつくでしょう。IntelliJ IDEAでは[Ctrl] + [Alt] + [Shift] + [T]([Ctrl] + [T])を押すと、このような構成の変更を行う「リファクタリング」機能を呼びだすことができます。 |
P.320:図15.7キャプション
誤 |
インスタンス化できない |
正 |
インスタンス化できないことを示すエラー |
P.325:src/main/java/projava/DiffSampleInherit.java P.325の17行目,19行目
誤 |
var image = new BufferedImage(600, 400, BufferedImage.TYPE_INT_RGB);
var graphics = image.createGraphics();
graphics.drawLine(10, 10, 400, 300);
|
正 |
var image = new BufferedImage(250, 200, BufferedImage.TYPE_INT_RGB);
var graphics = image.createGraphics();
graphics.drawLine(10, 10, 220, 180);
|
P.325:src/main/java/projava/DiffSampleInherit.java P325の23行目、25行目
誤 |
var image = new BufferedImage(600, 400, BufferedImage.TYPE_INT_RGB);
var graphics = image.createGraphics();
graphics.drawRect(10, 10, 400, 300);
|
正 |
var image = new BufferedImage(250, 200, BufferedImage.TYPE_INT_RGB);
var graphics = image.createGraphics();
graphics.drawRect(10, 10, 220, 180);
|
P.326:グレー背景箇所の1行目,3行目
誤 |
var image = new BufferedImage(600, 400, BufferedImage.TYPE_INT_RGB);
var graphics = image.createGraphics();
graphics.drawLine(10, 10, 400, 300); // ここだけ違う
|
正 |
var image = new BufferedImage(250, 200, BufferedImage.TYPE_INT_RGB);
var graphics = image.createGraphics();
graphics.drawLine(10, 10, 220, 180); // ここだけ違う
|
P.326:■src/main/java/projava/DiffSampleInherit.java(1つめ)
誤 |
var image = new BufferedImage(600, 400, BufferedImage.TYPE_INT_RGB);
|
正 |
var image = new BufferedImage(250, 200, BufferedImage.TYPE_INT_RGB);
|
P.326:■src/main/java/projava/DiffSampleInherit.java(2つめ)
誤 |
g.drawLine(10, 10, 400, 300);
|
正 |
g.drawLine(10, 10, 220, 180);
|
P.327:■src/main/java/projava/DiffSampleInherit.ja(1つめ)
誤 |
BufferedImage lineImage() {
|
正 |
static BufferedImage lineImage() {
|
P.327:■src/main/java/projava/DiffSampleInherit.ja(2つめ)
誤 |
g.drawRect(10, 10, 400, 300);
|
正 |
g.drawRect(10, 10, 220, 180);
|
P.327:■src/main/java/projava/DiffSampleInherit.ja(2つめ)
誤 |
BufferedImage rectImage() {
|
正 |
static BufferedImage rectImage() {
|
P.327:■src/main/java/projava/DiffSampleInherit.ja(3つめ)
誤 |
BufferedImage lineImage() {
|
正 |
static BufferedImage lineImage() {
|
P.327:■src/main/java/projava/DiffSampleInherit.ja(3つめ)
誤 |
g.drawLine(10, 10, 400, 300);
|
正 |
g.drawLine(10, 10, 220, 180);
|
P.328:■src/main/java/projava/DiffSampleInherit.java(1つめ)
誤 |
var image = new BufferedImage(600, 400, BufferedImage.TYPE_INT_RGB);
|
正 |
var image = new BufferedImage(250, 200, BufferedImage.TYPE_INT_RGB);
|
P.328:■src/main/java/projava/DiffSampleInherit.java(2つめ)
誤 |
BufferedImage lineImage() {
|
正 |
static BufferedImage lineImage() {
|
P.328:■src/main/java/projava/DiffSampleInherit.java(2つめ)
誤 |
g.drawLine(10, 10, 400, 300);
|
正 |
g.drawLine(10, 10, 220, 180);
|
P.329:■src/main/java/projava/DiffSampleInherit.java(1つめ)
誤 |
BufferedImage lineImage() {
|
正 |
static BufferedImage lineImage() {
|
P.331:■src/main/java/projava/DiffSampleInherit.java(2つめ)
誤 |
BufferedImage createImage(Consumer drawer) {
|
正 |
static BufferedImage createImage(Consumer drawer) {
|
P.332:■src/main/java/projava/DiffSampleInherit.java
誤 |
BufferedImage lineImage() {
return createImage(g -> g.drawLine(10, 10, 400, 300));
}
BufferedImage rectImage() {
return createImage(g -> g.drawRect(10, 10, 400, 300));
}
|
正 |
static BufferedImage lineImage() {
return createImage(g -> g.drawLine(10, 10, 220, 180));
}
static BufferedImage rectImage() {
return createImage(g -> g.drawRect(10, 10, 220, 180));
}
|
P.356:本文4行目
誤 |
図17.5がjava.util.ListのJavadocです。 |
正 |
するとjava.util.ListクラスのJavadocのページにジャンプします(図17.5)。 |
P.371:本文2行目
誤 |
バグを健在化させることができる |
正 |
バグを顕在化させることができる |
P.388:本文最終行
誤 |
て使いこなせるようにしておきましょう。 |
正 |
て使いこなせるようにしておきましょう。最後に補完関連操作で紹介したIntelliJ IDEAのショートカットを表19.1に挙げておきます。 |
P.421:表21.1 設定項目「Spring Boot」の「設定値」
誤 |
2.6.3、または「SNAPSHOT」や |
正 |
デフォルト、または「SNAPSHOT」や |
P.428:「プロジェクトを実行する」の下2行目
誤 |
〜右側にある再生アイコンを |
正 |
〜右側にある実行アイコンを |
P.428:図21.17 キャプション
誤 |
プロジェクトの再生アイコン |
正 |
プロジェクトの実行アイコン |
P.444:図21.31
P.444:図21.31
誤 |
Javaプログラム |
正 |
Javaプログラムで用意したデータ |