阅读量:0
在Java中,你不能直接通过变量名获取变量值,因为Java是一种静态类型语言,它在编译时就确定了变量的类型和名称。但是,你可以使用反射(Reflection)来实现这个功能。
以下是一个简单的示例,展示了如何使用反射通过变量名获取变量值:
import java.lang.reflect.Field; public class Main { public static void main(String[] args) { MyClass obj = new MyClass(); obj.setValue("example", 42); try { Field field = MyClass.class.getDeclaredField("example"); field.setAccessible(true); int value = (int) field.get(obj); System.out.println("Value of 'example': " + value); } catch (NoSuchFieldException | IllegalAccessException e) { e.printStackTrace(); } } } class MyClass { private int example; public void setValue(String fieldName, int value) { try { Field field = MyClass.class.getDeclaredField(fieldName); field.setAccessible(true); field.setInt(this, value); } catch (NoSuchFieldException | IllegalAccessException e) { e.printStackTrace(); } } }
在这个示例中,我们创建了一个名为MyClass
的类,它有一个私有变量example
。我们使用setValue
方法通过变量名设置变量值。然后,在main
方法中,我们使用反射获取example
变量的值并打印出来。
请注意,使用反射可能会导致性能下降,因此在实际项目中要谨慎使用。