Non-static method 'setMsg(java.lang.String)' cannot be referenced from a static context
时间: 2024-07-29 16:01:20 浏览: 106
"Non-static method 'setMsg(java.lang.String)' cannot be referenced from a static context" 是一个Java编译错误,它指出你不能从一个静态上下文中直接调用非静态方法(如`setMsg`)。在Java中,静态方法属于类,而非实例;而非静态方法与类的特定实例关联。
例如,如果你有一个名为`Message`的类,其中有一个非静态方法`setMsg`:
```java
class Message {
private String msg;
public void setMsg(String s) {
this.msg = s;
}
}
// 这里试图从静态上下文调用,但不允许
public class Main {
public static void main(String[] args) {
Message.setMsg("Hello"); // 报错: Non-static method 'setMsg(java.lang.String)' cannot be referenced from a static context
}
}
```
要解决这个问题,你需要创建`Message`类的实例并调用其方法:
```java
public class Main {
public static void main(String[] args) {
Message message = new Message();
message.setMsg("Hello");
}
}
```
阅读全文