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

Java餐厅模拟项目:跨类访问ArrayList报错‘无法解析getStarters方法’求助

解决Java餐厅模拟项目中Cannot resolve method getStarters in Menu错误

问题根源

你的Bill类位于BillsIncome包下,但Menu类没有声明任何包(处于默认包)。Java的访问规则中,默认包的类无法被其他包的类直接引用,这就是编译器找不到getStarters()方法的核心原因——它连Menu类的正确引用都没找到,更别说它的方法了。

解决方案

步骤1:给Menu类添加包声明

给Menu类指定一个包(比如单独创建Menu包,或者和Foods类同包),示例如下:

package Menu; // 添加包声明

import Foods.Desserts;
import Foods.Drinks;
import Foods.Main;
import Foods.Starter;

import java.util.ArrayList;

public class Menu {
    // 原有代码保持不变...
}

步骤2:在Bill类中导入Menu类

在Bill类的开头添加Menu类的导入语句:

package BillsIncome;

import Menu.Menu; // 添加导入语句
import Foods.Desserts;
import Foods.Drinks;
import Foods.Main;
import Foods.Starter;

import java.awt.*;
import java.util.ArrayList;

public class Bill {
    public static void main(String[] args) {
        Menu menu = new Menu();
        // 原有代码保持不变...
        System.out.println(menu.getStarters());
    }
}

额外建议

  • 项目中所有类都应该放在明确的包下,避免使用默认包,这是Java项目的基本规范,能避免很多类引用问题。
  • 检查TakeOrder类的包结构,如果它也在其他包,同样需要确保正确导入。

内容的提问来源于stack exchange,提问作者Fionn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 00:45:12