You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java租车系统报错:Incompatible types: Found 'Car', required 'java.lang.Object'

Java汽车租赁系统类型不兼容错误解决方案

错误原因

你代码里的List carlist = new ArrayList();是未指定泛型的原始集合,JVM会默认集合中存储的是Object类型。当你用增强for循环for (Car s : carlist)遍历的时候,集合取出的元素是Object,无法直接赋值给Car类型变量,所以抛出"Incompatible types"错误。

解决步骤

  1. 将集合改为泛型版本:把集合声明和初始化改成List<Car> carlist = new ArrayList<>();,明确指定集合存储Car类型对象,这样遍历的时候就不会有类型转换问题。
  2. 修正构造参数顺序错误:第4个Car对象的构造参数顺序颠倒了,原代码new Car("Murano", "SJC8761M", "Nissan", 300, 150)不符合构造方法的参数顺序(make, model, regNo, deposit, rate),应该改成new Car("Nissan", "Murano", "SJC8761M", 300, 150),否则会导致车辆品牌和牌照信息错乱。

修改后的完整代码

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

class Car {
    private String make;
    private String model;
    private String regNo;
    private int deposit;
    private int rate;

    public Car(String newMake, String newModel, String newRegNo,
               int newDeposit, int newRate) {
        make = newMake;
        model = newModel;
        regNo = newRegNo;
        deposit = newDeposit;
        rate = newRate;
    }

    public String getMake() {
        return make;
    }

    public String getModel() {
        return model;
    }

    public String getRegNo() {
        return regNo;
    }

    public int getDeposit() {
        return deposit;
    }

    public int getRate() {
        return rate;
    }
}

class TestProject {
    public static void main(String args[]) {
        // 改为泛型集合
        List<Car> carlist = new ArrayList<>();
        carlist.add(new Car("Toyota", "Altis", "SJC2456X", 100, 60));
        carlist.add(new Car("Toyota", "Vios", "SJG9523B", 100, 50));
        carlist.add(new Car("Nissan", "Latio", "SJB7412B", 100, 50));
        // 修正构造参数顺序
        carlist.add(new Car("Nissan", "Murano", "SJC8761M", 300, 150));
        carlist.add(new Car("Honda", "Jazz", "SJB4875N", 100, 60));
        carlist.add(new Car("Honda", "Civic", "SJD73269C", 120, 70));
        carlist.add(new Car("Honda", "Stream", "SJL5169J", 120, 70));
        carlist.add(new Car("Honda", "Odyssey", "SJB3468E", 200, 150));
        carlist.add(new Car("Subaru", "WRX", "SJB8234L", 300, 200));
        carlist.add(new Car("Subaru", "Imprezza", "SJE8234K", 150, 80));
        Scanner input = new Scanner(System.in);
        System.out.print("Enter model to rent: ");
        String model = input.nextLine();
        for (Car s : carlist) {
            if (model.equals(s.getModel())) {
                System.out.println("Model " + model + " is available");
                System.out.print("Enter number of days: ");
                int days = input.nextInt();
                System.out.println("***************Details*****************");
                int cost = (days * s.getRate()) + s.getDeposit();
                System.out.println("Deposit  DailyRate  Duration  TotalCost");
                System.out.println(s.getDeposit() + "       " + s.getRate() + "            " + days + "        " + cost);
                System.out.print("Proceed to rent?( y/n ): ");
                String dec = input.next();
                if (dec.equals("y")) {
                    System.out.println("Enter Customer Name: ");
                    String name = input.next();
                    System.out.println("Enter IC Number: ");
                    int num = input.nextInt();
                    System.out.println("************Receipt*************");
                    System.out.println("Name   ICNo   Car  RegNo Duration   TCost");
                    System.out.println(name + "   " + num + "   " + model
                            + "   " + s.getRegNo() + "   " + days + "   " + cost);
                    System.out.println("Serving Next Customer ");
                } else if (dec.equals("n")) {
                    System.out.println("Serving Next Customer: ");
                }
            }
        }
    }
}

内容的提问来源于stack exchange,提问作者farid a.k

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 07:00:58