2
class Pair<A,B> {
    final A first;
    final B sec;

    Pair(A f, B s){
        this.first = f;
        this.sec = s;
    }
}

AとBが不変タイプであることを確認する方法はありますか?

4

2 に答える 2

4

いいえ。タイプを不変であると識別する方法はなく、バインドされていることは言うまでもありません。

Serializable不変クラスを識別するためにプロジェクトで使用されるマーカー インターフェイス (メソッドのないインターフェイス) を作成し、チームにそれを順守させることができます。

例えば:

interface Immutable {}

class Pair<A extends Immutable, B extends Immutable> {
}
于 2012-12-02T04:43:23.957 に答える
2

いいえ。実際、この言語には概念や「可変」または「不変」型はまったくありません。「不変」とは、内部状態を変更できるメソッドやパブリック フィールドを提供しない型を説明するために使用する用語です。それ以外は、「可変」型と「不変」型の動作に違いはありません。

于 2012-12-02T08:22:00.303 に答える