2020年5月19日Javaでオブジェクト指向に基づいたコーディングをするために必須であり、最初の難関だったのが型パラメータでした。型パラメータに関して」でまとめてブログを書きはしたんですけど、正直わかっておらず頭にはてなマークが並んでいました。商品マスタと顧客マスタの画面を作り、機能が似通ってる場合、共通の処理などは当然抽象クラスで定義したほうが、コーディング量が少なくなりますし、保守性も向上します。JavaはPHPなどと違い型があるため、なかなかこれが難しかったりします。どんなケースで必要かというと・・データ自体をクラスで定義し、商品マスタではProductと顧客マスタではCustomerというクラスでデータを入れて引き回す、というようなケースです。普通に書く場合はList<Product>などと書けばいいのですが、これを抽象クラスで定義する場合、当然具体的なクラスは書けません。その場合、Tなどと型情報を入れる変数などを定義することが一般的です。そのため抽象クラスには下記のように記述します。find(){}}上記のクラスを継承した具象クラスは下記のように書きます。上記は通常の書き方ですが、型に制限をしたいときなどもあると思います。ある基底となるクラス(BaseClassとしましょう。)があり、そのクラスを使いたいときです。しないとゲッター、セッター、特定のメソッドを書くことができません。(リフレクションという手もありますが・・・)その場合、TはBaseClassの拡張である、ということを定義しないといけません。そのために下記のように書きます。//以下は先ほどのコードと同じ。BaseClass>{//以下は先ほどのコードと同じ。}クラスインスタンスの登録なお上記は通常のクラスを登録していますが、実際にはクラスインスタンスを登録することのほうが多いでしょう。現状のプロジェクトだとJPAを使っているのでクラスインスタンスがそもそも必要なのですが、それ以外にもそのクラスに関する様々な情報を取得できるという点でクラスインスタンスのほうがただのクラスよりも使えると思います。その場合、下記のような記述方法になります。entityClass;}ちなみに具象クラスはこのようになります。//具体的な型情報を登録することができます。{//コンストラクタにてAbstractClassのコンストラクタを呼び出し//具体的な型情報を登録することができます。{super(Product.class);}メソッド単位での型パラメータ上記のように書いておけばインスタンス生成時に個別のクラス情報が登録されるので、あとはクラス内でList<T>などとして使いまわすことができます。メソッド単位では別のクラスを使いたいなどというときもあるでしょう。私のケースであったのは、商品マスタに値を登録しようとおもってもProductのほかにProductDTOなどという別のクラスを作っている場合です。ProductにmakerIdなどというメーカーを識別するIDを持たせている場合、画面で表示するときには具体的なメーカー名などが必要になる場合です。その場合、もともとのProductではなくProductを拡張したProductDTOというクラスも使用しなくてはいけません。恒常的に使うクラスのほかに、スポット(メソッド単位)で使うようなクラスも動的に使いたい場合の方法を考えなくてはいけません。メソッド単位のクラスの場合は引数などで型パラメータを使い、下記のように戻り値の前に型を定義してあげれば大丈夫です。~などと記述してあげればOKです。上記理解でも不十分なところは多いと思いますが、これを身につけないとどうしても抽象度の高い実装ができないので何とか頑張って身につけたいところです。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。基礎編Javaでのログ出力についてようわかってなかったので基礎から調べました。近年はJavaSciprtを利用した動的なサイトが多いため、データのやり取りをAjaxで行うことも多かったりします。...複合コンポーネントJSFではラベルやテキストといったコンポーネントをグループ化し、一つのまとまりとすることができます。メリットとしては似たような部分をテンプレート化しておくことで保守性を向上させることができます。...jenkins構築いままでjenkinsについての記事を書いていなかったので記録しておこうと思います。