Sadece java eğitici koleksiyonunu okuyorum ve neden <E>
'un neden statik olduğunu anlıyorum?Statik <E> nedir?
public static<E> Set<E> removeDups(Collection<E> c) { return new LinkedHashSet(c); }
sayesinde Sarah
Sadece java eğitici koleksiyonunu okuyorum ve neden <E>
'un neden statik olduğunu anlıyorum?Statik <E> nedir?
public static<E> Set<E> removeDups(Collection<E> c) { return new LinkedHashSet(c); }
sayesinde Sarah
, genellikle statik ve jenerik parametre adı arasında bir boşluk var. static
, yöntemi statik olarak bildirir, yani, onu çağırmak için örnek gerekmez. <E>
, yöntemin argümanlarını ve/veya dönüş değerini parametrelemek için kullanılan, sınırsız bir jenerik parametrenin E olarak adlandırıldığını bildirir. İşte, yöntem bildirmek için dönüş türü, Set<E>
hem E kümesi döndüren kullanılan ve parametresinde, Collection<E>
yöntem sadece belirtilmemişse E.
E tipi bir koleksiyon aldığını belirten Dönüş değeri ve yöntem parametresi, aynı türle genel olarak parametrelendirilmelidir. Derleyici, yöntem çağrıldığında gerçek türü belirler. Jenerik parametreleri uyuşmuyor çünkü Örneğin,
Collection<String> myStrings = new ArrayList<String>();
.. add strings
Set<String> uniqueStrings = SomeClass.removeDups(myStrings);
iki koleksiyonları için farklı parametreli türlerini kullanmak çalışırsanız
, böyleSet<Integer> uniqueStrings = SomeClass.removeDups(myStrings);
olarak bu, bir derleyici hatası oluşturur. Eğer Collection `olarak toplanmasını ilan zaman
<E>
bu Jenerik Yöntem 5.0
onun kullanımıyla ilgili daha fazla ayrıntı için here bakınız Java Generics ile tanıtılan bir özellik olduğunu ilan etme yoludur ve mantık. okunabilirliği için
Yöntemin' daha esnek olacaktır. Bu şekilde, E. alt sınıflarının koleksiyonlarından geçebilirsiniz. – whiskeysierra