Java 不兼容的类型错误反过来又给我错误?

Java 不兼容的类型错误反过来又给我错误?,java,types,incompatibility,Java,Types,Incompatibility,因此,我已经尝试编写这段代码一段时间了,但是我的两个返回函数拒绝正常工作。我知道我没有返回正确的类型,但是我完全不知道返回什么来代替它,下面是代码:错误在第53行和第58行。正确归还汽车和卡车需要什么代码 public class lab21composition { public static void main(String args[]) { CarFactory factory = new CarFactory ("Ford"); Garage myGarage = ne

因此,我已经尝试编写这段代码一段时间了,但是我的两个返回函数拒绝正常工作。我知道我没有返回正确的类型,但是我完全不知道返回什么来代替它,下面是代码:错误在第53行和第58行。正确归还汽车和卡车需要什么代码

public class lab21composition
{
public static void main(String args[])
{
    CarFactory factory = new CarFactory ("Ford");
    Garage myGarage = new Garage();

    Car c = factory.produceCar("Fusion");
    Truck t = factory.produceTruck("F150");

    System.out.println(myGarage);

    myGarage.addVehicle(c);
    System.out.println(myGarage);

    myGarage.addVehicle(t);
    System.out.println(myGarage);

    Vehicle v = myGarage.removeVehicle();
    if (null !=v)
    {
        System.out.println(v.toString() + " was removed from garage.");
        System.out.println(myGarage);
    } 
        else
        {
            System.out.println("There was no vehicle in the garage to remove.");
        }

        myGarage.addVehicle(t);
        System.out.println(myGarage);

        CarFactory factory2 = new CarFactory ("Honda");
        Garage myGarage2 = new Garage();
        Car d = factory.produceCar("Odyssy");
        myGarage.addVehicle(d);
        System.out.println(myGarage2);

}
}

class CarFactory
{
private String name;

public CarFactory(String n)
{
    name = n; //ERROR, incompatible types/ Required:Truck/ Found: java.lang.String
}

public Car produceCar(String model)
{
    return name;  //ERROR, incompatible Types/ Required:Truck/Found: java.lang.String
}

public Truck produceTruck(String model)
{
    return name;
}
}

class Vehicle
{
public static String make, model;

public Vehicle()
{
    make = "Undefined";
    model = "Undefined";
}

public Vehicle(String _make, String _model)
{
    make = _make;
    model = _model;
}

public String toString()
{
    return make+" "+model;
}
}


}

您的问题在这里:

class CarFactory
{
private String name;
//snip    
public Car produceCar(String model)
{
    return name; 
}

public Truck produceTruck(String model)
{
    return name;
}
}

您声明了
CarFactory.produceCar
以返回
Car
——但您说的是
返回名称和名称的类型为
String

您的问题如下:

class CarFactory
{
private String name;
//snip    
public Car produceCar(String model)
{
    return name; 
}

public Truck produceTruck(String model)
{
    return name;
}
}

您声明了
CarFactory.produceCar
以返回
Car
——但您说的是
返回名称和名称的类型为
String

您的问题如下:

class CarFactory
{
private String name;
//snip    
public Car produceCar(String model)
{
    return name; 
}

public Truck produceTruck(String model)
{
    return name;
}
}

您声明了
CarFactory.produceCar
以返回
Car
——但您说的是
返回名称和名称的类型为
String

您的问题如下:

class CarFactory
{
private String name;
//snip    
public Car produceCar(String model)
{
    return name; 
}

public Truck produceTruck(String model)
{
    return name;
}
}

您声明了
CarFactory.produceCar
以返回
Car
——但您说的是
返回名称和名称的类型为
String

您可以为某些特定品牌创建汽车工厂,例如“福特”。你想制造某种型号的汽车或卡车。为此,您分别调用Car和Truck的构造函数

class CarFactory {
    private String name; // brand
    public CarFactory(String n){
        name = n;
    }
    public Car produceCar(String model){
        return new Car( name, model );
    }
    public Truck produceTruck(String model){
        return new Truck( name, model );
    }
}
汽车和卡车必须有合适的施工人员:

class Car extends Vehicle{
    public Car(String make, String model){
        super (make,model);
    }   
}

卡车也是如此。

您为某些特定品牌创建了汽车工厂,例如“福特”。你想制造某种型号的汽车或卡车。为此,您分别调用Car和Truck的构造函数

class CarFactory {
    private String name; // brand
    public CarFactory(String n){
        name = n;
    }
    public Car produceCar(String model){
        return new Car( name, model );
    }
    public Truck produceTruck(String model){
        return new Truck( name, model );
    }
}
汽车和卡车必须有合适的施工人员:

class Car extends Vehicle{
    public Car(String make, String model){
        super (make,model);
    }   
}

卡车也是如此。

您为某些特定品牌创建了汽车工厂,例如“福特”。你想制造某种型号的汽车或卡车。为此,您分别调用Car和Truck的构造函数

class CarFactory {
    private String name; // brand
    public CarFactory(String n){
        name = n;
    }
    public Car produceCar(String model){
        return new Car( name, model );
    }
    public Truck produceTruck(String model){
        return new Truck( name, model );
    }
}
汽车和卡车必须有合适的施工人员:

class Car extends Vehicle{
    public Car(String make, String model){
        super (make,model);
    }   
}

卡车也是如此。

您为某些特定品牌创建了汽车工厂,例如“福特”。你想制造某种型号的汽车或卡车。为此,您分别调用Car和Truck的构造函数

class CarFactory {
    private String name; // brand
    public CarFactory(String n){
        name = n;
    }
    public Car produceCar(String model){
        return new Car( name, model );
    }
    public Truck produceTruck(String model){
        return new Truck( name, model );
    }
}
汽车和卡车必须有合适的施工人员:

class Car extends Vehicle{
    public Car(String make, String model){
        super (make,model);
    }   
}


卡车也一样。

您能把收到的错误贴出来吗?当然,行:需要53个不兼容类型:Car found:java.lang.String行:需要58个不兼容类型:Truck found:java.lang.Strings提供错误详细信息和错误位置。使用正确的输入编辑问题。@machinamounter-请提供堆栈跟踪。并且在代码中注释哪一行是53和58(或者在提供堆栈跟踪时显示这些行),您可以发布您得到的错误吗?当然,行:需要53个不兼容类型:Car found:java.lang.String行:需要58个不兼容类型:Truck found:java.lang.Strings提供错误详细信息和错误位置。使用正确的输入编辑问题。@machinamounter-请提供堆栈跟踪。并且在代码中注释哪一行是53和58(或者在提供堆栈跟踪时显示这些行),您可以发布您得到的错误吗?当然,行:需要53个不兼容类型:Car found:java.lang.String行:需要58个不兼容类型:Truck found:java.lang.Strings提供错误详细信息和错误位置。使用正确的输入编辑问题。@machinamounter-请提供堆栈跟踪。并且在代码中注释哪一行是53和58(或者在提供堆栈跟踪时显示这些行),您可以发布您得到的错误吗?当然,行:需要53个不兼容类型:Car found:java.lang.String行:需要58个不兼容类型:Truck found:java.lang.Strings提供错误详细信息和错误位置。使用正确的输入编辑问题。@machinamounter-请提供堆栈跟踪。并且在代码中注释哪些行是53和58(或者在提供堆栈跟踪时显示这些行),我相信OP知道问题在哪里,但不知道如何解决问题。答案是调用相应的
Car
Truck
构造函数,而不是返回
name
。对于Car或Truck,我需要返回什么?我尝试在方法中更改类型,但我的第一行都是汽车或卡车。在
公共汽车生产车
中,您需要找到该车型的
汽车
,并返回
汽车
对象。在
produceTruck
中,您按模型进行搜索,然后返回
Truck
对象我相信OP知道问题在哪里,但不知道如何解决问题。答案是调用相应的
Car
Truck
构造函数,而不是返回
name
。对于Car或Truck,我需要返回什么?我尝试在方法中更改类型,但我的第一行都是汽车或卡车。在
公共汽车生产车
中,您需要找到该车型的
汽车
,并返回
汽车
对象。在
produceTruck
中,您按模型进行搜索,然后返回
Truck
对象我相信OP知道问题在哪里,但不知道如何解决问题。答案是调用相应的
Car
Truck
构造函数,而不是返回
name
。对于Car或Truck,我需要返回什么?我尝试在方法中更改类型,但我的第一行都是汽车或卡车。在
公共汽车生产车
中,您需要找到该车型的
汽车
,并返回
汽车
对象。在
produceTruck
中,您按模型进行搜索,然后返回
Truck
对象我相信OP知道问题在哪里,但不知道如何解决问题。答案是调用相应的
Car
Truck
构造函数,而不是返回
name
。什么