Java类型不匹配?

时间:2017-09-16 14:58:12

标签: java compiler-errors type-mismatch

好的,所以我必须创建一个停车票模拟器程序。我编译它,并且大多数情况下它都有效,除了我得到的这个类型不匹配的小哑误差。这是很多代码,所以我只给出了错误所在的类:

KNW_PoliceOfficerClass

public class KNW_PoliceOfficer 
{ 
  private String name;
  private int badge;
  private static double ticket;

      public KNW_PoliceOfficer() 
      {

      }

      public KNW_PoliceOfficer(String poName, int poBadge) 
      {
        name = poName;
        badge = poBadge;
      }

      public String getName() 
      {
        return name;
      }
      public int getBadge() 
      {
        return badge;
      }

      static KNW_ParkingTicket search(KNW_ParkedCar car, KNW_ParkingMeter meter) 
      {
        int time = KNW_ParkedCar.getMinutes() - KNW_ParkingMeter.getMinPurchased();

        if(KNW_ParkedCar.getMinutes() > KNW_ParkingMeter.getMinPurchased()) 
        {
          if(time <= 60) 
          {
            ticket = 25;
          }
          else 
          {
            ticket = 25 + (10 * (time/60));
          }
          return ticket;
        }


      }

KNW_ParkingTicketClass

 public class KNW_ParkingTicket 
{
  private KNW_ParkedCar vehicle;
  private KNW_PoliceOfficer copster;
  private double fine;
  private int minutes;
  private double firstFine = 25;
  private double moreFine = 10;

  public KNW_ParkingTicket(KNW_ParkedCar car, KNW_PoliceOfficer cop, double guyFine, int mins) 
  {
   vehicle = car;
   copster = cop;
   fine = guyFine;
   minutes = mins;
  }

  public void getTotalFine() 
  {
   int  time = KNW_ParkedCar.getMinutes() - KNW_ParkingMeter.getMinPurchased();

   if(time <= 60) 
   {
    fine = firstFine;
   }
   else 
   {
    fine = firstFine + moreFine * (time / 60);
   }
  }

  public double getFirstFine() 
  {
   return firstFine;
  }
  public double getMoreFine() 
  {
   return moreFine;
  }
  public KNW_ParkedCar getVehicle() 
  {
   return vehicle;
  }
  public KNW_PoliceOfficer getCopster() 
  {
   return copster;
  }
  public int getMinutes() 
  {
   return minutes;
  }
  public double getFine() 
  {
   return fine;
  }


 }

这就是错误所说的:

 File: C:\Users\Kyle Welch\KNW_PoliceOfficer.java  [line: 46]
Error: Type mismatch: cannot convert from double to KNW_ParkingTicket

非常感谢任何帮助!!

3 个答案:

答案 0 :(得分:1)

问题在于ticket参数,您已通过以下方式对其进行了定义:double ticket;

KNW_ParkingTicket方法中,您可以在此处看到带参数的完整方法:

static KNW_ParkingTicket search(KNW_ParkedCar car, KNW_ParkingMeter meter)

它需要返回KNW_ParkingTicket类型,但您要在其中返回名为double的{​​{1}}:

ticket

答案 1 :(得分:0)

您的search方法应返回KNW_Parking_Ticket,但您返回的ticketdouble

答案 2 :(得分:-1)

NW_PoliceOfficer类中的搜索方法返回类型为KNW_ParkingTicket,但是您返回双重更改方法搜索方法返回类型为double。

试试这个:

静态双重搜索(KNW_ParkedCar car,KNW_ParkingMeter meter){ int time = KNW_ParkedCar.getMinutes() - KNW_ParkingMeter.getMinPurchased();

if(KNW_ParkedCar.getMinutes()&gt; KNW_ParkingMeter.getMinPurchased())         {

      if(time <= 60) 
      {
        ticket = 25;
      }
      else 
      {
        ticket = 25 + (10 * (time/60));
      }
      return ticket;
    }