我有一个类,其中包含一个看起来像这样的人的信息:
public class Contact {
private String name;
private String location;
private String address;
private String email;
private String phone;
private String fax;
public String toString() {
// Something here
}
// Getters and setters.
}
Run Code Online (Sandbox Code Playgroud)
我想toString()返回this.name +" - "+ this.locations + ...所有变量.我试图使用这个问题所示的反射实现它,但我无法设法打印实例变量.
解决这个问题的正确方法是什么?
我需要知道局部变量的类型.我正在使用Java反射,使用它我无法得到它.能告诉我如何知道局部变量的类型/名称吗?
我可以使用Java反射获取有关局部变量的信息吗?
只是玩弄Java反射,我想我大部分时间都掌握了它。我从这个问题/答案中了解到,在大多数情况下,我仅限于静态变量。如果我有该类的实例,则可以访问非静态变量,这确实有意义,我得到了很多。
说我有以下两节课:
public class A
{
private static int _staticInt;
public static void main(String[] args)
{
B instanceOfB = new B();
}
}
public class B
{
private int _nonStaticInt;
public Game() {}
}
Run Code Online (Sandbox Code Playgroud)
我知道如何访问_staticInt,这不是问题。我的理解是,我可以以相同的方式获得Fieldfor 。从其他研究(javadocs,trails等)中,我收集到需要一个实例才能获得的值。_nonStaticIntField f = B.class.getDeclaredField("_nonStaticInt");B_nonStaticInt
所以我的问题;由于main是静态的,因此可以访问instanceOfB以便访问的值_nonStaticInt吗?我认为这是不可能的,但是我认为在放弃这个想法之前,最好先咨询比我自己知识渊博的人。