質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

受付中

Javaソースコードの効率化をしてみたので、問題点がないか確認をお願いしたいです。

ssmm_147
ssmm_147

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

1回答

0リアクション

1クリップ

336閲覧

投稿2022/10/01 03:26

質問内容

Springbootの書籍に記載されているソースコードが冗長な気がしたので直してみました。
型変換でExceptionが発生しないか気がかりなのですが、問題ないでしょうか?
・Integer型で引数を受け取ることは保障されている?
・Integer→String変換はint→String変換と同様に考えてよいか?
またその他に問題点があればご教授いただきたいです。
初歩的な質問で恐縮ですがよろしくお願いします。
※書籍名は「Spring Framework超入門~やさしくわかるWebアプリ開発」です

修正前のソースコード

/** リンク処理*/ @GetMapping("/function/{no}") public String selectFunction(@PathVariable Integer no) { // 「ビュー名」の初期化 String view = null; switch (no) { case 1: view = "pathvaliable/function1"; break; case 2: view = "pathvaliable/function2"; break; case 3: view = "pathvaliable/function3"; break; } return view; }

修正後のソースコード

/** リンク処理*/ @GetMapping("/function/{no}") public String selectFunction(@PathVariable Integer no) { return "pathvaliable/function" + String.valueOf(no); }

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

ssmm_147

2022/10/01 03:35

補足ですが、修正前と同様に修正後も動くことは確認しています。
episteme

2022/10/01 03:40

だったら何が不安なんですか?
Zuishin

2022/10/01 03:41

no が 4 の時の挙動が違います。質問するよりテストを書きましょう。
Zuishin

2022/10/01 03:46

また、関数を実行するたびに文字列を生成しているので、効率化できているとも言い切れません。 最も問題なのは、function の名前が連番になっていることです。 元々の例はあくまで例なので連番でも問題なく、実情に合わせて書き換えできますが、あなたのコードでは連番であることが要求されます。
ssmm_147

2022/10/01 03:58

>最も問題なのは、function の名前が連番になっていることです。 >元々の例はあくまで例なので連番でも問題なく、実情に合わせて書き換えできますが、あなたのコードでは連番であることが要求されます。 返信ありがとうございます。 すみません、上記の部分がよく分かっていないのですが、「function の名前が連番になっている」とは具体的にどういうことでしょうか?
Zuishin

2022/10/01 04:04 編集

連番だと何の関数かわからないじゃないですか。 function1 function2 というのはあくまで例で、ここは本来なら get_user や get_date のようなパスになるんだと思いますが、違いますか?
ssmm_147

2022/10/01 04:19

理解しました。 あくまでサンプルだから連番で書いているだけで、本来は有意な命名をするから個別に指定する方がよい、ということですか。 一見冗長に見える書き方だと思ったのですが、著者の意図はそこにあったのかもしれないですね。 勉強になりました。ありがとうございます。
m.ts10806

2022/10/01 23:02

質問テンプレートと同じようなものだと思います。 「ここに実際に決められたパスを入れてください」「ここに実際に決められた定義名を入れてください」 sampleとかexampleとかhogeとか書いてあるのと変わらないと思って良いかと。
m.ts10806

2022/10/01 23:03

ただ元のコードが本当にその通りだとすると、1,2,3以外はnullが返るので、 その場合どうなるの?というのは気になりますが。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。