ジェネリックメソッドの戻り値は境界ワイルドカード型にしないSGソフトウェア開発ブログ株式会社エス・ジーの社員が日々のソフトウェア開発で学んだ技術を公開していくブログです。よると"最大限の柔軟性のためには、プロデューサ(生産者)かコンシューマ(消費者)を表す入力パラメータに対してワイルドカード型を使ってください。確かにメソッドの引数に関してはその通りだと思う。メソッド使用者の利便性を考えると、"戻り値型として境界ワイルドカード型を使わないでください。こちらについてはどうだろうか。a)とすると困ったことが起こる。func(1);ジェネリック型同士の汎化・特化関係...と、ここで、これはPECS原則と代入の方向を勘違いしていることが原因だと気づいた。そもそも、戻り値をどう使うかはメソッド使用者側の問題なので、メソッドのデザインとして、PECSの原則には当てはまらない。ワイルドカード型のジェネリック変数にワイルドカードでないジェネリック型を代入することはできるけど、ワイルドカードでないジェネリック型の変数にワイルドカード型を代入することはできない。いうか、代入先のワイルドカードがより広い範囲を指しており、範囲に矛盾がなければ代入が可能ということになる。ln;だから、イメージとしてはワイルドカード型は非ワイルドカード型を汎化したもので、非ワイルドカード型はワイルドカード型を特化したものと考えるといいのかもしれない。ワイルドカード型同士も、より狭い範囲を指している型ほど特化している。広い範囲を指している型ほど汎化しているということになる。Windowsのコマンドプロンプトで正規表現を使って、文字列置換ファイルや標準出力の内容を文字列置換したいなんてことはよくあるよね。こんなときUnixだと、sedやawkを使うところだけど、Windowsのコマンドプロンプトでは該当するコマンドが用意されていない。バッチに変数の文字列置換をする機能はあることはあるけど、バッチでループを...Javaで空のリストを返すメソッドからコレクションを返す場合、無効な状態を表すのにnullを返すのではなく、要素数0のコレクションを返すのが良い作法とされている。その度に新しいインスタンスを作成するのは無駄なようにも思える。テストデータを作ったので、SQLiteにデータを投入してみよう。テーブルのDDLを作成する。Blogger.QooQ。