
UnaryOperator<T>などがあれば、ああ、ジェネリクスにおいて任意のクラス型をここで使用するんだろうな、と言うのは分かりますが、複数あった場合のその記述の際のルールが未だ分かりません。
例えば、BiFunction<T,U,R>などでは、ああ、TがBiFunctionでの第一引数で使用される型、Uが第二引数で使用される型、Rが返り値の型なんだな、と言うことは分かるのですが、こうした並び・順序性に規則やルールはあるのでしょうか。
(型パラメータは任意の文字列を使用して良いと言うのは理解していますが、順序性において、参考書には記載がありませんでした。ネットで探しましたが、こちらも探し方が悪いのか見つかりません。)
基本的に関数型インターフェースでの戻り値ありのものの場合、返り値がある時には最後にそれを持ってこなければいけないだとか、あるいは引数が複数ある場合には、その順序性を保たなければならないだとかのルールです。
あるいは順序は関係なく、そのようなルールが無い、使用しているものを書けば良く、あえて分かりやすいように便宜的に皆こう記載している、と言うのであればその旨教えていただけると幸いです。
No.2ベストアンサー
- 回答日時:
はっきりしたものは無いけど
①一つの場合 T
②2つの場合 T、Uの順
③戻り型はRで最後に
④辞書タイプのクラスではではK(キー)、V(値)の順
⑤沢山有って順序が重要な時は A1、A2、A3・・・の順
他にも有った気がするけど
あんまりジェネリクスは自分で作ることは少ないので・・・
No.1
- 回答日時:
言語仕様としては
型パラメータ A が型パラメータ B に依存するなら B は A より前になければならない
はず (未確認) だけど, そのような依存関係のない型パラメータ同士ならどのような順序であってもかまわない. ただ, プログラムを「人間が見る」ことを考えれば, 型パラメータの名前や順序には「それなりに合理的な理由」を要求するのがふつうだと思うよ.
極論すれば「(T, U) -> R」に対して
WierdBiFunction<U, R, T>
としても*言語仕様としては*なんら問題ない. 問題ないけど... 「なるほど, それはいいや」って思います? それとも「こいつ, 頭おかしいんじゃね~か」って思いますか?
回答ありがとうございます。
なるほど・・・できればそれが明文化された規約があればそれを知りたい感じですよね。
>「それなりに合理的な理由」
が個々の人間で判断されて良いと言う自由なケースと、その一段だけ型に落とした「並びはこうしたものが推奨されます」だとか「特に規約はありませんが、一般的にはこうします」などなど。
オブジェクトの直列化の出力ファイルの拡張子がこんな感じですよね。
拡張子に特に決まりはないが、.serでつけることが一般的である、などなど。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
デバッグ時に「Source not found」
-
(vba)他のアプリケーションの右...
-
抽象クラスのエラーが出ます
-
メソッドの引数にクラス名を渡す
-
Strutsのバージョンアップによ...
-
ASP.NETでの共通コードの書き方...
-
JavaのimplementsをC言語で例え...
-
なぜインタフェースを使うのか?
-
「ラッパークラス」の存在意義...
-
「継承されたメソッドの可視性...
-
「タイプ初期化子が例外をスロ...
-
eclipse-Tomcatでのデバッグに...
-
関数内の変数に<summary>コメン...
-
エクセルVBAで、条件に一致する...
-
中学のクラス数
-
javascriptからjavaを呼び出したい
-
【sendkeysメソッドが動かずに...
-
Excelで =EMBED("Acrobat Docu...
-
引数で日付を2つ与え、その間の...
-
JavaScriptからJAVAクラスを呼...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
(vba)他のアプリケーションの右...
-
ASP.NETでの共通コードの書き方...
-
オーバーライドとラッパーの違い
-
「継承されたメソッドの可視性...
-
C# 「データが失なわれる可能性...
-
メソッドの引数にクラス名を渡す
-
ゲッターを使わないで変数にア...
-
C#からDLLを呼びたいのですが・...
-
c++でのヘッダーファイルの循環...
-
interface,extend,implementの...
-
抽象クラスをJUNITでテストする...
-
Javaのインスタンス化の構文の...
-
【C#】クラスのコンストラクタ...
-
Excel vbaのプログラムでガンマ...
-
VB DLLプロジェクトについて
-
単体テストのテストケースにて...
-
デバッグ時に「Source not found」
-
「ラッパークラス」の存在意義...
-
Commons-Discovery.jarとは?
-
Ftpでの帯域制限の設定方法につ...
おすすめ情報