【发布时间】:2014-09-16 15:09:09
【问题描述】:
对 Java 和 SO 来说都是新手。这是我的问题:
假设 x 是 X 类的一个实例。而 y 是 X 的一个属性(字段)。如果我在函数 f 中传递“x.y”,有没有办法访问 x?
例子:
Class Person
{
public Girl girl; //Girl itself is another class
}
public void function1(Girl g)
{
//body
}
Person p = new Person();
p.girl = new Girl();
function1(p.girl);
现在,我想在函数中访问 p。 (类似于链表中的“前一个”指针)。
环顾四周,发现了一种叫做反射的东西。但这并没有帮助,真的。谢谢!
【问题讨论】:
-
你的代码是无效的java。没有不属于类的函数。函数可以通过引用
this来引用其类的本地实例 - 这就是您从函数内部引用Person实例的方式(Java 中的方法,但 w/e)。 -
I want to access ... in the function然后添加为参数。 -
我刚刚输入了需要的内容。假设 function1 是正在发生所有处理的另一个类的一部分。而且 Person、Girl 和这个 Process 类是同一个包的一部分。
-
为什么不直接改变接受 Person 的方法?
-
@bcsb1001,gnomed - 我不想那样做。我正在尝试输入一个通用函数,因为我有不同的类,比如 Person。但他们都有Girl作为属性。而且我正在尝试在不使用任何继承的情况下工作,因此无法将这些类创建为父类。
标签: java class reflection field