java:<;标识符>;应使用ArrayList

java:<;标识符>;应使用ArrayList,java,object,arraylist,identifier,Java,Object,Arraylist,Identifier,我有一个名为Storage的类。存储器包含一个名为Products的特殊对象的arraylist。每个产品都包含名称、价格等信息。我的代码如下: class Storage{ Product sprite = new Product("sprite",1.25,30); Product pepsi = new Product("pepsi",1.85,45); Product orange = new Product("orange",2.25,36); Product hershey

我有一个名为Storage的类。存储器包含一个名为Products的特殊对象的arraylist。每个产品都包含名称、价格等信息。我的代码如下:

class Storage{

 Product sprite = new Product("sprite",1.25,30);
 Product pepsi = new Product("pepsi",1.85,45);
 Product orange = new Product("orange",2.25,36);
 Product hershey = new Product("hershey",1.50,33);
 Product brownie = new Product("brownie",2.30,41);
 Product apple = new Product("apple",2.00,15);
 Product crackers = new Product("peanut",3.90,68);
 Product trailmix = new Product("trailmix",1.90,45);
 Product icecream = new Product("icecream",1.65,28);
 Product doughnut = new Product("doughnut",2.75,18);
 Product banana = new Product("banana",1.25,32);
 Product coffee = new Product("coffee",1.30,40);
 Product chips = new Product("chips",1.70,35);

 ArrayList<Product> arl = new ArrayList<Product>();

 //add initial elements to arraylist
 arl.add(sprite);
 arl.add(pepsi);
 arl.add(orange);
 arl.add(hershey);
 arl.add(brownie);
 arl.add(apple);
 arl.add(peanut);
 arl.add(trailmix);
 arl.add(icecream);
 arl.add(doughnut);
 arl.add(banana);
 arl.add(coffee);
 arl.add(chips);
}
类存储{
产品雪碧=新产品(“雪碧”,1.25,30);
产品百事可乐=新产品(“百事可乐”,1.85,45);
产品橙色=新产品(“橙色”,2.25,36);
产品好时=新产品(“好时”,1.50,33);
产品布朗尼=新产品(“布朗尼”,2.30,41);
产品苹果=新产品(“苹果”,2.00,15);
产品饼干=新产品(“花生”,3.90,68);
Product trailmix=新产品(“trailmix”,1.90,45);
产品冰淇淋=新产品(“冰淇淋”,1.65,28);
产品甜甜圈=新产品(“甜甜圈”,2.75,18);
产品香蕉=新产品(“香蕉”,1.25,32);
产品咖啡=新产品(“咖啡”,1.30,40);
产品芯片=新产品(“芯片”,1.70,35);
ArrayList arl=新的ArrayList();
//将初始元素添加到arraylist
arl.add(雪碧);
爱加(百事可乐);
arl.add(橙色);
爱加(好时);
arl.添加(布朗尼);
arl.add(苹果);
添加(花生);
arl.add(trailmix);
添加(冰淇淋);
arl.add(甜甜圈);
arl.add(香蕉);
添加(咖啡);
arl.add(芯片);
}
每当我编译时,我都会在第141-153行收到一条错误消息,说明
预期的

我知道这是一个基本问题,但我似乎无法解决这个问题。非常感谢您的帮助。

您不能仅在类主体中调用这样的方法。您必须将方法调用放在其他方法或构造函数中

你想要这个:

class Storage{

    Product sprite = new Product("sprite",1.25,30);
    Product pepsi = new Product("pepsi",1.85,45);
    Product orange = new Product("orange",2.25,36);
    Product hershey = new Product("hershey",1.50,33);
    Product brownie = new Product("brownie",2.30,41);
    Product apple = new Product("apple",2.00,15);
    Product crackers = new Product("peanut",3.90,68);
    Product trailmix = new Product("trailmix",1.90,45);
    Product icecream = new Product("icecream",1.65,28);
    Product doughnut = new Product("doughnut",2.75,18);
    Product banana = new Product("banana",1.25,32);
    Product coffee = new Product("coffee",1.30,40);
    Product chips = new Product("chips",1.70,35);

    ArrayList<Product> arl = new ArrayList<Product>();


    //constructor
    protected Storage(){
        //add initial elements to arraylist
        arl.add(sprite);
        arl.add(pepsi);
        arl.add(orange);
        arl.add(hershey);
        arl.add(brownie);
        arl.add(apple);
        arl.add(peanut);
        arl.add(trailmix);
        arl.add(icecream);
        arl.add(doughnut);
        arl.add(banana);
        arl.add(coffee);
        arl.add(chips);
    }
}
类存储{
产品雪碧=新产品(“雪碧”,1.25,30);
产品百事可乐=新产品(“百事可乐”,1.85,45);
产品橙色=新产品(“橙色”,2.25,36);
产品好时=新产品(“好时”,1.50,33);
产品布朗尼=新产品(“布朗尼”,2.30,41);
产品苹果=新产品(“苹果”,2.00,15);
产品饼干=新产品(“花生”,3.90,68);
Product trailmix=新产品(“trailmix”,1.90,45);
产品冰淇淋=新产品(“冰淇淋”,1.65,28);
产品甜甜圈=新产品(“甜甜圈”,2.75,18);
产品香蕉=新产品(“香蕉”,1.25,32);
产品咖啡=新产品(“咖啡”,1.30,40);
产品芯片=新产品(“芯片”,1.70,35);
ArrayList arl=新的ArrayList();
//建造师
受保护存储(){
//将初始元素添加到arraylist
arl.add(雪碧);
爱加(百事可乐);
arl.add(橙色);
爱加(好时);
arl.添加(布朗尼);
arl.add(苹果);
添加(花生);
arl.add(trailmix);
添加(冰淇淋);
arl.add(甜甜圈);
arl.add(香蕉);
添加(咖啡);
arl.add(芯片);
}
}

问题是您的初始化代码不正确。你可以:

  • 将其放入构造函数或其他方法中
  • 把它放在实例初始化器中
  • 将其作为字段初始值设定项
最后一个选项是最简单、最干净的解决方案;它看起来像这样:

List<Product> arl = new ArrayList<Product>(
  Arrays.asList(
    sprite, pepsi, orange, hershey, brownnie, apple, peanut,
    trailmix, icecream, doughnut, banana, coffee, chips
  )
);
List arl=new ArrayList(
Arrays.asList(
雪碧、百事可乐、橙汁、好时、布朗尼、苹果、花生、,
trailmix冰淇淋甜甜圈香蕉咖啡薯条
)
);

还请注意,我将
arl
的类型切换到了它的接口
List
。只要可能,您应该尝试使用接口,而不是具体的实现。

您的类缺少一些方法。使用构造函数或main方法(publicstaticvoidmain(String[]args){…})填充ArrayList。

为什么要使用该接口?这比直接使用ArrayList有什么好处+1用于Arrays.asList实例。除其他外,因为:(i)更灵活;您不依赖于一个特定的实现(ii)更好的封装;您只能使用接口提供的内容。确定。你可能也想试试Polygene的答案——它的重复性要小一些。