2015-11-16 14 views
5

JLS 3. sürümü ve çıkarım mekanizması ile ilgili bir sorum var. Bu bölüm 15.12.2.7 belirtildiği olduğu:Java çıkarımı: bir üst sınır ile tip değişkeni

tipi U Tj içerir F = U [], daha sonra A, bir dizi türü V [], bir üst ile veya bir tip değişken bağlı ise, varsa bu, bir dizi tip V []

I üst sınır, bir dizi türü ile bir tür değişken oluşturmak için çalışılmıştır, ama bu derleyici tarafından kabul edilmesi gibi görünmemektedir. gibi bir şey:

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

Benim soruya ise: JLS bu fragmanda yanlış, ya da ben bir şey mi kaçırdım? Cümlenin son kısmı benim için tatmin edici görünmüyor.

Teşekkür

aşağıdaki hata ayrıntıları itibaren
+0

için çok teşekkürler, bir şey yanlışsa derleyici, JLS değil. – resueman

+0

3rd edition? Lütfen bu teklife bir link verin. –

+0

JLS en azından çelişkilidir, 4.4 bölümünde olduğu gibi, şu belirtilmiştir: Tip değişkenleri isteğe bağlı bir bağlı, T & I 1 ... I n. Bağlı, bir tür değişkeni veya bir sınıf veya arabirim tipinden oluşur. T –

cevap

2

:

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

o bölüm 4.4 içinde devletlerin JLS, biraz tutarsız:

Tipi değişkenleri bir var isteğe bağlı bağlı, T & I 1 ... I n. bağlı bir tür değişken ya da bir sınıf veya arayüz tipi T birinden oluşur

tipi değişken bir mesafede (bir kısmının zaman söz konusu yukarıda belirtilen ile çelişkili bir dizi türü, bağlı olamaz bölüm 15.12.2.7):

ya da karşılanabilir asla gibi bir dizi tip V []

Bu kısım, sadece göz ardı edilebilir bir üst sınır ile bir tür değişken.

+0

Hatalı değilse, dizi tipi üst sınırlara yapılan başvuru son JLS'den kaldırılmıştır. – biziclop