繁体   English   中英

使用迭代器模式返回不兼容类型的二维数组

[英]2D array returning incompatible types using Iterator Pattern

我正在尝试构建一个二维数组。 持有食物,具有价值。 我知道我做错了什么,有人能看到吗?

public class FoodMenu implements Menu {

    static final int MAX_ITEMS = 6;
    int numberOfItems = 0;
    String[][] foodItems;

    public FoodMenu() {
        foodItems = new String[MAX_ITEMS][];
    
        addItem("Vegetarian BLT","Test");
        addItem("BLT","Test");
        addItem("Soup of the day","Test");
}

public FoodMenuIterator(String[][] items) {
        this.items = items;
    }

public void addItem(String name, String value) {
        if (numberOfItems >= MAX_ITEMS) {
            System.err.println("Sorry, menu is full!  Can't add item to menu");
        } 
        else {
            foodItems[numberOfItems][3] = name;
            numberOfItems = numberOfItems + 1;
        }
    }

    @Override
    public boolean hasNext() {
        if (position >= items.length || items[position] == null) {
            return false;
        } else {
            return true;
        }
    }

    @Override
    public Object next() {
        String menuItem = items[position]; ---**//The issue is here**---
        position = position + 1;
        return menuItem;
    }

问题在评论行的上方。 错误出现为不兼容的类型:String[] 无法转换为 String。 我的目标是在二维数组中添加食物类型和值作为字符串。

我该如何解决这个错误? 我试过给“String menuItem = items[position][]; etc 没有解决方案。” 有任何想法吗?

你想继承java的默认迭代器,否则你不会覆盖任何东西。 编译器认为 position 是一个局部变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM