按名称访问对象变量和方法

Access objects variable & method by name

示例class:

class Test {
  public int marks;
  public String location;

  public String show(){
      return "Good morning!";
  }
}

有什么方法可以通过 getter 访问 markslocations?可能是这样:

Test t = new Test();
System.out.println(t.get("marks"));

也许

System.out.println(t.call("show"));

我的确切用例是能够访问 R.id.[fieldname] 以访问 Android 资源 ID

这行得通吗?

R.id.getClass().getField("date").get(R.id) ?

我该怎么做?

Test t = new Test();
System.out.println(t.getClass().getField("marks").get(t));

要调用一个方法并从其他方法获取它的值 class 使用这个

Method method = obj.getClass().getMethod("Methodname", new Class[] {});
String output = (String) method.invoke(obj, new Object[] {});