java: 无法从静态上下文中引用非静态 方法 add(int,int)怎么改
时间: 2023-12-23 18:06:12 浏览: 90
如果要从静态上下文中引用非静态方法,需要先创建对象,然后通过对象来调用方法。具体方法是:
1. 创建一个对象
```
ClassName obj = new ClassName();
```
2. 通过对象来调用方法
```
obj.add(1, 2);
```
这样就可以调用非静态方法了。完整代码如下:
```
public class ClassName {
public void add(int a, int b) {
// 方法体
}
public static void main(String[] args) {
ClassName obj = new ClassName();
obj.add(1, 2);
}
}
```
注意:如果非静态方法在同一个类中被调用,可以直接使用方法名,不需要创建对象。但是如果在静态方法中调用非静态方法,还是需要通过对象来调用。
相关问题
java: 无法从静态上下文中引用非静态 方法 add(int,int)出现这个错误怎么解决
这个错误是因为你在静态方法中调用了非静态方法,需要将被调用的方法也声明为静态方法,或者创建一个对象来调用非静态方法。具体解决方法取决于你的代码实现。以下是两种可能的解决方案:
1. 将被调用的方法声明为静态方法:
```
public class MyClass {
public static int add(int a, int b) {
return a + b;
}
public static void main(String[] args) {
int result = add(1, 2); // 可以在静态方法中调用静态方法
}
}
```
2. 创建一个对象来调用非静态方法:
```
public class MyClass {
public int add(int a, int b) {
return a + b;
}
public static void main(String[] args) {
MyClass myClass = new MyClass();
int result = myClass.add(1, 2); // 必须创建一个对象来调用非静态方法
}
}
```
try { ArrayList.add(1,99); }catch (AddIndexOutOfException e) { e.printStackTrace(); } ArrayList.display();java: 无法从静态上下文中引用非静态 方法 add(int,int)出现这个错误怎么解决
这个错误是因为你试图在静态方法中调用非静态方法add(int, int),需要创建一个ArrayList对象来调用非静态方法。以下是可能的解决方案:
```
public static void main(String[] args) {
ArrayList list = new ArrayList();
try {
list.add(1, 99);
} catch (AddIndexOutOfException e) {
e.printStackTrace();
}
list.display();
}
```
在这个例子中,我们创建了一个ArrayList对象list,并使用它来调用非静态方法add(int, int)。注意,在调用这个方法之前,我们需要使用try-catch块捕获可能抛出的AddIndexOutOfException异常。最后,我们使用list对象调用非静态方法display()来打印数组中的所有元素。
阅读全文