Java类型不匹配?

问题描述:

好吧,所以我不得不创建一个程序,这是一个停车票模拟器。我编译它,大部分它的工作,除了这是一个类型不匹配的小笨拙的错误。这是一个很大的代码,所以我就放弃了类错误是:Java类型不匹配?

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 

任何帮助,将不胜感激!

+0

哪一行?请显示完整的错误信息。 –

+0

该代码有很多错误,包括错误使用静态,调用方法,就好像它们是静态的,当它们应该是实例时....你根本没有使用方法参数。也许是从头开始写的。 –

+0

你在'KNW_PoliceOffice'中声明'ticket'是一个'double',在你的'search'方法中你说你要返回一个'KNW_ParkingTicket',但实际上你返回的是'ticket',这是一个double。 – nbokmans

您的search方法应返回KNW_Parking_Ticket,但您返回ticket这是一个double

问题是ticket参数,你这样定义它:double ticket;

KNW_ParkingTicket方法

,你可以看到完整的方法与参数在这里:

static KNW_ParkingTicket search(KNW_ParkedCar car, KNW_ParkingMeter meter)

需要返回KNW_ParkingTicket类型,但您要返回的名称为ticketdouble其中:

return ticket;

+0

你介意告诉我这是如何工作的吗?我会很感激! –

+1

小心Mohsen - 我怀疑我们在这里有一个[帮助吸血鬼](https://meta.stackexchange.com/questions/19665/the-help-vampire-problem)。 –

+0

@KyleWelch我没有责任为你编码,我只回答了这是为什么发生异常的操作! –

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

试试这个:

静态搜索(KNW_ParkedCar车,KNW_ParkingMeter米){ INT时间= KNW_ParkedCar.getMinutes()-KNW_ParkingMeter.getMinPurchased();

如果(KNW_ParkedCar.getMinutes()> KNW_ParkingMeter.getMinPurchased()){

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