0

コードをmavenでコンパイルしようとすると、次のエラーが発生します。

constructor TripGuesser in class TripGuesser cannot be applied to given types

しかし、Eclipse (実際には FuseIDE) ではエラーは発生しません!

私のコードは次のようなものです:

public class TripGuesser {
   private ArrayList<VehicleAbstract> vehicles;
   private DataAccessHandler dataAcces;
   private String stop_id;

   @SuppressWarnings("unchecked")
   public TripGuesser(ArrayList<? extends VehicleAbstract> vehicles, DataAccessHandler dataAccess, String stop_id){
          this.vehicles = (ArrayList<VehicleAbstract>) vehicles;
          this.dataAcces = dataAccess;
          this.stop_id = stop_id;
    }
}


public class HelsinkiStopsHandler {
    ...
    ArrayList<Vehicle> vehicles = vehiclesPerRoute.get(routeAndDirectionId);
    TripGuesser guesser = new TripGuesser(vehicles, dataAccess, last_stopId);
    ...
}

public class Vehicle extends VehicleAbstract{
       ...
}

public abstract class VehicleAbstract{
       ...
}

私はすでにコンストラクターを別の方法で呼び出そうとしたので、私のクラス HelsinkiStopsHandler は次のようになりました。

public class HelsinkiStopsHandler  {
    ArrayList<? extends VehicleAbstract> vehicles = vehiclesPerRoute.get(routeAndDirectionId);
    TripGuesser guesser = new TripGuesser(vehicles, dataAccess, last_stopId);
}

それでも同じエラーが発生します。

ここにはおなじみの質問がたくさんあることは知っていますが、それらの答えはどれもうまくいきません...

Java バージョン: 1.7.0

ヒューズ IDE バージョン: 6.0.0

Maven バージョンでコンパイル: 3.1.0

4

1 に答える 1

0

解決策を見つけました...コードが次のようになっている場合に機能します。

 public class TripGuesser {
     private ArrayList<VehicleAbstract> vehicles;
     private DataAccessHandler dataAcces;
     private String stop_id;

     @SuppressWarnings("unchecked")
     public TripGuesser(ArrayList<VehicleAbstract> vehicles, DataAccessHandler dataAccess, String stop_id){
      this.vehicles = vehicles;
      this.dataAcces = dataAccess;
      this.stop_id = stop_id;
     }
 }


 public class HelsinkiStopsHandler {
      ...
      ArrayList<? extends VehicleAbstract> vehicles = vehiclesPerRoute.get(routeAndDirectionId);
      ArrayList<VehicleAbstract> vehiclesAbs = (ArrayList<VehicleAbstract>) vehicles;
      TripGuesser guesser = new TripGuesser(vehiclesAbs, dataAccess, last_stopId);
      ...
 }
于 2013-11-05T08:18:20.550 に答える