1

我有一个非常简单的家庭作业程序,我正在尝试使用存储在 ArrayList 中的名为“Payment”(可怕的名字,我知道)的类按年和月对账单进行分组(我愿意接受关于更好的容器)。

但是我从 Eclipse 收到一条奇怪的错误消息(将放在最后)。

public class Payment {
    private double[] Month;
    private int Year;
    private boolean Paid;

    ....
    // A lot of setters, getters, nothing important
}

现在我想创建一个数组列表

import java.util.ArrayList;

public class Bill {
    ArrayList<Payment> Money = new ArrayList<Payment>();
    Money. // error -> Money didn't get highlighted, intellisense did not provide 
                      // a list of methods

错误内容如下:

Multiple markers at this line:
    Syntax error, insert "enum Identifier" to complete EnumHeaderName
    Syntax error on token "Money", delete this token
    Syntax error on token "Money", delete this token
    Syntax error, insert "EnumBody" to complete EnumDeclaration

我完全不知道为什么会这样。我进入我的主文件进行测试,它在那里工作,只是不在这里,在“Bill”类中,现在基本上是空的。

4

2 回答 2

3

似乎您正试图在参考上调用某些ArrayList方法。Money

请注意,您不能在类中直接包含这样的语句。你需要有一些method可以放置的地方。

这是一个例子: -

public int getListSize() {
    return Money.size();
}

如果你把Money.size()所有的方法都放在外面,那将是一个编译器错误。: -

public class Demo {
    Money.size();  // Compiler Error

    public void getSize() {
        Money.size();   // Ok. Well, I have just added it plain to show it works
                        // Ideally you would return it, or print it.
    }
}

但是,您可以在 RHS 上调用,将返回值分配给 int:-

public class Demo {
    int size = Money.size();  // Now this is fine
}
于 2012-12-18T12:43:48.740 回答
1

您似乎想从Money类主体中的ArrayList 调用方法Bill。将方法调用放入构造函数或方法中。

顺便说一句,尝试遵循 Java命名约定。变量名应为“lowerCamelCase”。

于 2012-12-18T12:43:45.943 回答