2009-07-22 19 views
5

Bazı noktalarda java.lang.Override, arabirimlerde bildirilen yöntemlerin uygulamalarıyla kullanılmak üzere kullanıma sunulmaya başlamıştır. Üst sınıflarda tanımlanan yöntemlerin geçersiz kılmaları için çalıştığı bir zaman olduğundan eminim.Bu Java API değişiminin ne zaman gerçekleştiğini nasıl öğrenebilirim?

Bu değişikliğin ne zaman (yani hangi sürümde) olduğunu nasıl öğrenebilirim?

cevap

12

Kullanımı arasında oluşmuş Java 5 ve Java @Override spesifikasyonu 6 değişiklikler arasında

yapıldı: Java 6. See @Override specification changes in Java 6 yılında yeni bir özelliktir arayüzler arasından uygulanacak ve bir üst sınıftan geçersiz değil. Java izin verilmeyen bir arabiriminin yöntemlerini uygulamak yöntemlere @Override ek açıklama eklemek için Java 6'da mümkündür 5.

arkadaş o gerektiğini söylediğinde ben fark ettim onun Java 6 proje Java 5.

ile derlemek için tüm @Override ek açıklamaları kaldırmak ilginç şey Bu değişiklikle ilgili hiçbir belge olmasıdır. @Override API belirtimi, Java sürümlerinde tam olarak aynıdır . Sun geliştiricileri tarafından unutulan bu olduğunu öğrendim. Peter Ahé, a former developer at Sun, calls it the @Override Snafu.

+0

Bu, Java6 belgelerinden bağlantılı olduğu şekilde JLS ile çelişir: "Bir yöntem, bir süper arabirimden gelen bir yöntemi geçersiz kılarsa ancak @Override kullanılarak bir üst sınıftan kaynaklanan bir hataya neden olur." – skaffman

2

Bunu öğrenmek istiyorum bilmiyorum ama 5 ve 6 (yani o 5 yasak ama 6'da kabul ettiği) olan yöntemlere @Override ek açıklama

1

Sen "resmen" dışarı çünkü someone at Sun messed up bulamıyor ve uygulama değiştirdi ve serbest bırakma izin verilmez sonra görünüşte şartname değişiyordu zaman java.lang.Override API doc şartname güncelleme vermedi.

İlgili konular