Bilgisayarlar, Programlama
Java Jenerik: tanımı ve yöntemleri
Java dili görünümü ile başlayan kuşkusuz işlevselliği olumlu anları getirdi değişikliklerin, bir sürü uğramıştır. Bu önemli değişikliklerden biri Java Jenerik veya genellemelerin giriştir. Bu işlev, yalnızca dil daha esnek ve çok yönlü, aynı zamanda veri türlerini getirme açısından çok daha güvenli yapmaz.
Aslında Java jenerik kodunda jenerik tanıtımı öncesinde tip referans Nesne açısından değil, oluşabileceğini olmasıdır. Bu tür bağlantılar, herhangi bir nesne atanabilir. Sonuçta, Java sınıfları örtülü Nesne sınıf varis olurlar. Ancak, bu yaklaşım, hedef türüne nesnesinden bir nesnenin görünen dönüşümde güvenlik türleriyle ilgili birçok hataların potansiyel bir kaynaktır. genellemeler kullanırken tüm yayınları hatalar için bile potansiyelini ortadan kaldırarak, örtük ve otomatik olarak yapılmaktadır.
Java Jenerik: tanımı ve örnek
Bize aşağıdaki şekilde düzenli sınıflara genelleştirme uygulamanın basit bir örnek ele alalım. Ve sonra bütün inceliklerini ve Java Generic'in nüansları ayrıntılı bir incelemeye devam edin.
sınıf bildirimi Çifti meydana geldiği yolda dikkat edin. Hemen sınıf adı sonra, T harfi belirtilmedikçe açık açılı parantez, belirli bir türü tarafından değiştirilmek üzere, bu sınıfın bir örneği oluşturma sürecinde olan bir dolgu maddesi tür. aşağıdaki gibi görünüyor: Çifti
Not: boş bırakılabilir yapıcı referans açı parantezleri bildirirken hedef türünü belirten, Java sekizinci versiyonu ile başlanarak hazırlandı. Yukarıdaki örnek olarak yeniden olabilir Yani: Pair
Bir sınıf alanları, linkler, şu mektubu kullanabilirsiniz yöntemlerle döndürülen nesnelerin belirli türleri yerine vücudundaki sonra, bu şekilde beyan zaman. T yana sınıf nesnesi, bu durumda, birinci ve ikinci alanların tamsayı olacaktır özel bir tip ile değiştirilir oluştururken.
argümanları ve firstItem secondItem mantığı sonra, aynı zamanda, tip tamsayı veya alt sınıfına ait olmalıdır uygun kurucu anılacaktır. Bir nesneyi oluştururken belirtilenlerin farklı bir veri türü iletmek çalışırsanız, derleyici bu hatayı izin vermez. Bu durumda, bir amacı gibi olacaktır argümanlar yapıcı aşağıdaki gibidir: Pair
Birkaç parametreler sınıf türleri ile Genelleştirilmiş
genel sınıfları ayrıca bir virgül ile açılı parantez içinde ayarlanır tip birden çok parametre ilan edebilir. Çifti sınıfı aşağıda sunulmuştur bir durumda tarafından yeniden tasarlandı.
Gördüğünüz gibi size köşeli ayraç içinde bu sınıfın bir örneğini oluştururken, parametre olarak tiplerinin aynı sayıda belirtmelidir. Eğer bir harita olarak veri yapısı bu tür aşina değilseniz, bunu tam olarak aynı ilkeyi kullandığını görebilirsiniz. değerin türünü - Orada, ilk argüman anahtarın türünü ve ikinci belirtir. Iletilen tipleri bir amacı, bağımsız değişkenler çakışabilir zaman not edilmelidir. Örneğin, aşağıdaki reklam Çifti sınıf örneği kesinlikle doğrudur: Çifti
genellemelerin bazı özellikleri
ileriye gitmeden önce, Java derleyici sınıf Çiftinin farklı sürümlerini yaratmaz unutulmamalıdır. Aslında, genel bir tip tüm bilgileri derleme sürecinde silinir. Bunun yerine, Çifti sınıfının özel bir versiyonunu yaratarak, uygun türde getirmek. Ancak, programda yine sınıfın sadece genel bir sürümü var. Bu süreç, Java Jenerik temizleme tipinde denir.
önemli bir noktayı unutmayın. Aynı java jenerik sınıfın farklı sürümleri linkler tek ve aynı nesneye işaret edemez. Çifti
Jenerik sınıflar ilişkin kısıtlamalar
Bu genellemeler türlerini başvurmak için sadece uygulanabilir olduğunu bilmek önemlidir, bu parametreleri bir sınıf türü olmalıdır jenerik sınıf java argüman geçmektir. Çift veya uzun örn gibi bu basit türleri, transfer edilemez. Başka bir deyişle, aşağıdaki satırı Çifti sınıf bildirimi izin verilmez: Çifti
Bir diğer ciddi sınırlama parametresi türü bir örneğini oluşturmak için yetersizliğidir. Örneğin, aşağıdaki çizgi bir derleme hataya neden olur: T birinci = yeni T (). bir argüman tam bir sınıf veya soyut, hatta arayüzü geçti olmadığını önceden bilmiyorum çünkü bu, aşikardır. Aynı dizi oluşturulurken için de geçerli.
sınırlı türleri
o genel sınıf java argüman olarak geçirilebilir türleri listesini sınırlamak için gerektiğinde Oldukça sık durumlar vardır. bizim sınıf Pair biz onlara başka matematiksel işlemler için sadece sayısal değerleri saklanması istediğinizi varsayalım. Bunu yapmak için parametre türü üst sınırını tanımlamak gerekir. Bu köşeli ayraç içinde geçirilen tüm argümanları kalıtsal bir üst sınıf reklamların vasıtasıyla gerçekleştirilmiştir. Aşağıdaki gibi görünecektir: sınıf Çifti
Bu yaygın bir resepsiyon olduğunu. Bu tür sınırlamalar, genellikle, tek ve aynı sınıfta uyumluluk tür parametreleri elde etmek için kullanılır. Sınıfımız Pair örneğe düşünün: class Çifti
"Alt" sınırlama aynı yoldur, ama bunun yerine kelimenin kelime süper büyü uzanır. Yani sınıflandırılır sınıf Çifti
Jenerik Java yöntemleri ve kurucular
Java'da, genellemeler de yöntemleri yalnızca sınıflara değil uygulandı, ancak yapılabilir. Örneğin, bir jenerik yöntem normal bir sınıfta bildirilebilir.
Yukarıdaki şekilde de görüldüğü gibi, reklam genelleştirilmiş yöntem büyük bir olay olduğunu. bir yöntemin dönüş tipi açılı ayraç koymak ve onları tip parametrelerini belirlemek için önce yeter.
her şey yapıcı benzer yapılırsa:
Bu durumda Açı parantez o geri dönüşü değeri vardır çünkü, tasarımcının adından önce koydu. Her iki programın sonucu olacaktır:
tamsayı
sicim
Similar articles
Trending Now