繁体   English   中英

java:类中的构造函数无法应用于给定类型

[英]java: constructor in class cannot be applied to given types

当我尝试使用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

我找到了一个解决方案...当我的代码看起来像这样时,它可以工作:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM