2015-11-16 23 views
5

JLSの第3版と推論の仕組みに関する質問があります。 Aが V []、又は上限と型変数配列型であり、次いで場合、タイプUは、TJを含むF = U []、場合Javaの推論:配列型の上限を持つ型変数

:セクション15.12.2.7にそれを記載されていますすなわち、アレイ型V []は

Iが上限アレイ型で型変数を作成しようとしたが、これはコンパイラによって受け入れられていないようです。何かが好きです:

public class MyClass<T extends String []> { 
} 

私の質問は:この断片のJLSが間違っているのですか、それとも私は何かを逃しましたか?文の最後の部分は私にとっては不満足なようです。次のバグでの詳細から

おかげ

+0

何か問題があれば、JLSではなくコンパイラになります。 – resueman

+0

第3版ですか?その見積もりへのリンクを入力してください。 –

+0

JLSは、少なくともセクション4.4のように矛盾しています。 タイプ変数にはオプションの境界T&I 1 ... I nがあります。バインドは、型変数、またはクラスまたはインタフェース型T –

答えて

2

:それはセクション4.4で述べているよう

https://bugs.openjdk.java.net/browse/JDK-6557960

JLSは、少し支離滅裂です:

型変数を持っています任意の束縛、T & I 1 ... I n。結合 型変数、またはクラスまたはインタフェースタイプTのいずれかで構成さ

型変数から(すなわち、一部は私の質問に上記と矛盾している配列型であり、結合していないことができセクション15.12.2.7):それは充足可能になることはありませんように

または配列タイプV []

この部分である上限を持つ型変数を単に無視することができます。

多くのご協力ありがとうございます。

+0

誤っていない場合でも、配列型の上限への参照は最新のJLSから削除されています。 – biziclop

関連する問題