gpt4 book ai didi

java - 可以从 A 类实例中创建的另一个 B 类实例访问 AN 类实例的字段

转载 作者:行者123 更新时间:2023-12-01 17:19:22 26 4
gpt4 key购买 nike

我想知道是否可以从第一个类内部创建的另一个类访问类字段中包含的信息。我放置了一段 Java 代码来显示我想要做的事情。

    public class A {
public String c = new String();
B b;
...
...
...
public void doSomething() {

b = new B();
}
}

public class B {

...
...
...
public void retrieveInformationFromA() {

// I need to retrieve the field "c" of A instance that's
// created the B instance
}
}

注意:由于此代码当前设计的限制,我无法在 B 中创建包含 A 类的字段“c”参数的构造函数。由于遗留代码,我必须尽可能避免更改现有代码。

我感谢任何帮助!!

更新:我已经更正了代码,我忘记将 public 修饰符添加到 A 中的字段“c”。

最佳答案

由于您没有指定字段“c”的任何可见性(公共(public)、私有(private)、 protected ),因此隐含了“包保护”,即与类 A 位于同一包中的所有类都可以直接访问该字段。

因此,如果您的类 A 和 B 位于同一个包中,您可以直接从类 B 访问字段“c”。

如果它们不在同一个包中,则无法正常访问,而需要使用反射(这应该是绝对的最后手段):How do I read a private field in Java?

编辑:但是您仍然必须将对 A 类实例的引用传递给 B 类。如果您无法更改 B 类,那么您就完全不走运了。

关于java - 可以从 A 类实例中创建的另一个 B 类实例访问 AN 类实例的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19855956/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com