gpt4 book ai didi

java - 仅通过 java 中的方法强制从同一类访问私有(private)成员

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:00:54 24 4
gpt4 key购买 nike

我想强制一个类的 future 用户也只能通过访问器方法(甚至通过 junit 或类似的东西)从该类中编写的 future 代码访问私有(private)成员。

有没有办法在java中做到这一点?如果可能,有人可以举个例子吗?

最佳答案

您不能强制执行此操作,但您可以创建一个方法并在 javadoc 中记录该强制执行。

private int myMember;

/**
* ATTENTION: use this method instead of setting the member directly.
*/
public void setMyMember(int value) {
this.myMember = value;
}

此外,还有一个可能有效的替代解决方案。使用 ThreadLocal,像这样:

private final ThreadLocal<String> member = new ThreadLocal<String>();

public void setMember(final String value) {
member.set(value);
}

成员字段是最终的,不能更改。因此,客户端将被迫直接调用 setter 。

关于java - 仅通过 java 中的方法强制从同一类访问私有(private)成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7413556/

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