Bağlantı sınıfını alan bir koleksiyona geri dönmem gerekiyor, ancak "sembolü bulamıyor" diyen bir hata döndürmeye devam ediyor. Bir koleksiyonun nasıl iade edileceğine dair anlayıştan yoksunum. İstasyon parametresini alır. Burada Koleksiyon Döndürme
yöntemdir:@Override
public Collection<Connection> getConnectionsFrom(Station station) {
return Collection<Connection>(station);
}
Ve burada bağlantı sınıftır: aslında Collection dönmek gerekiyordu varsayım yapma,
public class TrainConnection implements Connection {
double distance;
private Map<String, Connection> connectionMap;
public static TrainConnection newConnection = new TrainConnection();
@Override
public double getDistance() {
return distance;
}
@Override
public Station getStationA() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public Station getStationB() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public Station getOtherStation(Station station) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}
Peki, getConnectionsFrom'daki dönüşünüz yanlış. Koleksiyon belirli bir uygulama değildir. Bu nedenle, koleksiyonu uygulayan belirli bir Nesneyi başlatmanız, ardından istasyonu bu koleksiyona eklemeniz ve sonra geri vermeniz gerekir. – KevinO
' Geri Dön Koleksiyon (istasyon); 'bu kodun ne işe yarar? “Yeni” olmadığı için bir kurucu çağırmıyor. Varsa, Koleksiyon bir arayüzdür, bu yüzden bir tane oluşturamazsınız. Yalnızca arabirimi uygulayan somut sınıfların örneklerini oluşturabilirsiniz (örneğin ArrayList veya HashSet) –
Kodunuzda göremediğim başka bir şey de 'Station'un ne olduğu. Koleksiyon 'döndüreceğini belirtiyorsunuz, ancak bunun yerine koleksiyonu bir" Station "ile başlatmayı deniyorsunuz. –