我有一个接口和一个String变量,如下所示:
public interface LoginPage {
public static String UserName = "//input[@name='usertxt']";
}
现在我从Excel文件中获取接口名称和变量名称为String,如下所示:
String referenceName="LoginPage.UserName";
当我说System.out.println(referenceName);
时,它应该打印//input[@name='usertxt']
而不是打印LoginPage.UserName
请帮助我。
答案 0 :(得分:4)
您可以使用反射API:
import java.lang.reflect.Field;
interface LoginPage {
public static String UserName = "//input[@name='usertxt']";
}
public class Main {
public static void main(String[] args) throws SecurityException, NoSuchFieldException, ClassNotFoundException,
IllegalArgumentException, IllegalAccessException {
String referenceName="LoginPage.UserName";
String s[] = referenceName.split("\\.");
final Field field = Class.forName(s[0]).getDeclaredField(s[1]);
System.out.println(field.get(null));
}
}
谢谢你,我今天学到了这个新东西:)
了解更多详情,http://blog.sevagas.com/?Modify-any-Java-class-field-using-reflection