java: 无法从静态上下文中引用非静态 方法 add(messages.Message)
时间: 2023-09-02 13:11:41 浏览: 106
这个错误是因为你在静态上下文(例如静态方法或静态块)中引用了一个非静态方法。静态方法和静态块不能访问非静态方法,因为非静态方法需要在对象上下文中调用,而静态方法和静态块是与类相关而不是与特定对象相关。因此,如果你想在静态上下文中使用非静态方法,你需要创建一个对象并在该对象上调用该方法。
例如,假设你有一个名为`MessageList`的类,并且在其中定义了一个非静态方法`add`,你在静态方法中使用`add`方法时会出现上述错误。要解决这个问题,你需要创建一个`MessageList`对象并在该对象上调用`add`方法,如下所示:
```
public class MessageList {
private List<Message> messages = new ArrayList<>();
public void add(Message message) {
messages.add(message);
}
public static void main(String[] args) {
MessageList messageList = new MessageList();
messageList.add(new Message("Hello, World!"));
}
}
```
在这个例子中,我们创建了一个`MessageList`对象并在该对象上调用`add`方法,从而避免了静态上下文中引用非静态方法的错误。
阅读全文