Java'da "Kişi Yöneticisi" oluşturuyorum.Aynı arabirimi uygulayan iki alt sınıf için genel bir yöntem tanımlama
ben "İletişim iki temel sınıfları vardır denilen bir üst sınıfı var;. personalcontact ve BusinessContact
Ben sınıflar Doğum tarafından uygulanan Olay denilen bir arayüz, ve Toplantı. (Toplantının, bir başlangıç ve bitiş zamanı için iki tane varsa, bir DateTime nesnesi içerir)
Kişisel İrtibat, 'un bir Ağacı Setini içerir ve BusinessContact, Toplantıları bir kümesine sahiptir.
Şimdi, üst sınıf Contact yılında, ben belirli bir zaman dilimi içindeki tüm doğum günleri ve/veya toplantılar TreeSet dönecektir "getEventsWithinPeriod()" adlı soyut bir yöntem oluşturmak istiyorum.
Sorun şu ki, soyut yönteme nasıl anlatacağımı bilmiyorum ve sonra temel sınıf, ne döndürmesi gerektiğini anlatıyor.
Örneğin, bu, 'da kullandığım koddur;
public abstract Set<Event> getEventsWithinPeriod(DateTime start, DateTime end);
Ve personalcontact içinde
;public Set<Birthday> getEventsWithinPeriod(DateTime start, DateTime end){
Set<Birthday> birthdaysThatAreWithin = new TreeSet<Birthday>();
//CODE
return birthdaysThatAreWithin;
Ancak derleyici, diyordum Set<Birthday>
bir hata alıyorum;
kullanıyorum gereken doğru terimler ve iadeler nelerdir "döndürme türü Contact.getEventsWithinPeriod (DateTime, DateTime) ile uyumsuz"? Benim şimdiki denemem neden yanlış?
Neden "Olay" arabirimini kullanmaya devam etmek istemiyorsunuz? Uygulama için görünür yöntemin listesini tanımlayarak, kodun anlaşılması için arabirimin ana fikri.Sadece "TreeSet" –
kullanın. Tam bir anlaşma yapıyorum, @ Fess - "getEvents ..." olayları döndürdüğü açıkça görünüyor, öyle değil mi? Bu durumda jeneriklerin kullanımı sadece kafa karıştırıcı ve yararsızdır. –
Evet siz haklısınız, bu şekilde bitirdim. Arabirimin, "Etkinlikler" başlığı altında her iki sınıfı aynı tür olarak birleştirmek için nasıl kullanılabileceğini anlayamadım. Yardım ettiğin için teşekkür ederim! – CodyBugstein