java在获取成员变量时多了引号
时间: 2024-03-26 15:40:25 浏览: 6
我不太明白你的问题具体是什么,能否提供更多细节信息或者上下文呢?不过,如果你是说在 Java 中获取对象的成员变量时需要使用引号,那么是因为成员变量名是一个字符串,需要用引号将其括起来表示。例如,如果有一个类定义如下:
```
public class MyClass {
private int myInt;
public String myString;
}
```
那么在获取它的成员变量时,可以这样做:
```
MyClass obj = new MyClass();
int i = obj.myInt; // 直接使用成员变量名
String str = obj.myString;
```
但是,如果要使用字符串来获取成员变量,需要使用反射机制中的 `getField` 方法,如下所示:
```
import java.lang.reflect.Field;
public class MyClass {
private int myInt;
public String myString;
}
public class Main {
public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException {
MyClass obj = new MyClass();
// 直接使用成员变量名获取
int i = obj.myInt;
String str = obj.myString;
// 使用字符串获取
Field intField = MyClass.class.getDeclaredField("myInt");
int j = intField.getInt(obj);
Field strField = MyClass.class.getDeclaredField("myString");
String s = (String) strField.get(obj);
}
}
```
需要注意的是,使用字符串获取成员变量的方式比较繁琐,而且容易出错,因此不建议在正常的开发中使用。