2016-03-31 7 views
0

Connectionクラスを受け取るコレクションを返す必要がありますが、 "シンボルが見つかりません"というエラーが返され続けます。私はコレクションを返す方法についての理解が不足しています。ステーションのパラメータを取得します。ここ コレクションを返す

はメソッドです:

@Override 
public Collection<Connection> getConnectionsFrom(Station station) { 
    return Collection<Connection>(station); 
} 

そしてここでConnectionクラスである:それは実際にコレクションを返すことになっていた仮定を作る、

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. 
    } 

} 
+1

さて、getConnectionsFromでのあなたの返事は間違っています。コレクションは特定の実装ではありません。コレクションを実装する特定のオブジェクトをインスタンス化し、そのコレクションにステーションを追加してから、それを返す必要があります。 – KevinO

+0

'返品コレクション(駅);'このコードはどう思いますか? 'new'がないので、コンストラクタを呼び出すことはありません。もしあれば、Collectionはインタフェースなので、それを構築することはできません。インターフェイスを実装する具象クラス(ArrayListやHashSetなど)のインスタンスを作成することしかできません。 –

+1

あなたのコードでは見えないもう一つのものは、 'Station'です。 'Collection 'を返すように指定しますが、その代わりに 'Station'を使ってコレクションをインスタンス化しようとします。 –

答えて

0

getConnectionsFromを解決する方法の一例として、上で指摘したように。

public Collection<Station> getConnectionsFrom(Station station) 
{ 
    Collection<Station> connections = new ArrayList<>(); 
    connections.add(station); 
    return connections; 
} 

しかし、新しいコレクションを毎回作成されることに注意してください。あなたは解決しようとしている問題についてより具体的にする必要があります。

+0

私は他のコードに記載されていない限り、 'Station'は' Connection'ではないので、 'add'することはできません –

+0

これは@CacheStaheliが指摘したように動作しません。私は駅のconnectionMap内の接続を望んでいると仮定しています。その場合、マップをループして個別に追加する必要があります –

+0

@CacheStaheli、あなたは間違いありません。私は戻り値の型を変更しました。 – KevinO

関連する問題