![](/img/trans.png)
[英]How to get android.Manifest.permission's value by a constants's name stored as a variable in Java
[英]Get value of variable by it's name : Java
我想通过具有变量的名称来获取变量的值,如何实现?
private String firstName = "some xpath";
private String secondName = "some xpath";
public void findElement(String fName , String sName){ // fName = "firstName" , sName = "secondName"
driver.findElementByXPath(/*here goes reflection of fName*/);
driver.findElementByXPath(/*here goes reflection of sName*/);
}
谢谢
使用反射,您可以执行以下操作:
public void print(String fName , String sName) throws Exception {
Field fNameField = this.getClass().getDeclaredField(fName);
Field sNameField = this.getClass().getDeclaredField(sName);
System.out.println(fNameField.get(this));
System.out.println(sNameField.get(this));
}
假设您的私有变量位于不同的类中,例如:
public class PrivateObject {
private String firstName = "myFName";
private String secondName = "mySName";
}
您可以通过以下反射访问它们:
public void print(String fName , String sName){ // fName = "firstName" , sName = "secondName"
PrivateObject p = new PrivateObject();
try {
Field fNameField = PrivateObject.class.getDeclaredField(fName);
Field sNameField = PrivateObject.class.getDeclaredField(sName);
fNameField.setAccessible(true);
sNameField.setAccessible(true);
String fNamefieldValue = (String) fNameField.get(p);
String sNamefieldValue = (String) sNameField.get(p);
System.out.println("fName = " + fNamefieldValue);
System.out.println("sName = " + sNamefieldValue);
} catch (Exception e) {
e.printStackTrace();
}
}
此代码应执行以下操作:
private String firstName = "myFName";
private String secondName = "mySName";
public void print(String fName , String sName){
System.out.println(fName);
System.out.println(sName);
}
如果希望它们位于同一行,也可以使用System.out.print。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.