问题标签 [private-members]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5356 浏览

java - 如何从 Java 中的抽象类中改变私有字段?

有一个抽象类:

我不想更改抽象类的来源,但需要在如何设置字段周期方面增加一些灵活性。是否可以从覆盖方法更改字段期间的值?例如:

当我尝试运行此代码时super.getClass().getDeclaredField("period")抛出java.lang.NoSuchFieldException: period

0 投票
7 回答
9052 浏览

java - 为什么允许通过反射访问 Java 私有字段?

考虑这个例子:

允许您通过反射访问类的私有字段似乎不合逻辑。为什么会有这样的功能?允许这样的访问不是“危险的”吗?

0 投票
6 回答
1266 浏览

javascript - Javascript:由 eval() 和 new Function() 创建的调试代码

我试图将一个私有变量放入一个已经存在的函数中,例如:

我的目标是运行 get() 函数,该函数由现有的 AObject 拥有,带有私有 var ...我使用 eval(或 new Function)获得它,但不幸的是调试器将被破坏!

那么,有没有一种方法可以在不使用 eval 的情况下实现这一点,或者有一种方法可以使用 eval 并保持调试器有用?

0 投票
5 回答
166 浏览

unit-testing - 单元测试时后门 Java 访问的替代方法

我正在尝试使用许多私有方法对一个类进行单元测试。每个私有方法都可以相当广泛。

我可以使方法包作用域(这会导致警告),或者我可以使用下面的代码来测试它:

该类不是“上帝对象”,它的大多数方法都涉及它的所有领域。

关于如何更好地处理这个问题的任何建议?

0 投票
3 回答
3066 浏览

php - 在子方法中访问父变量

我目前有两个班,一个叫Dog,一个叫Poodle。现在如何使用 Poodle 类的 Dog 中定义的变量。我的代码如下:

我收到这个错误

注意:未定义的变量:名称

0 投票
3 回答
2212 浏览

c++ - 使用私有析构函数删除对象

在下面的代码中,怎么可能允许使用私有析构函数删除对象?我已将实际程序简化为以下示例,但它仍然可以编译和工作。

0 投票
1 回答
468 浏览

f# - 如何使用 f# interactive 访问私有字段/方法/属性

F# interactive 是一个强大的开发工具,因为它允许运行 WinForm 或 Wpf 窗口在其中调用任意代码。

这为“先试后编码”方法提供了一种方法。

很多时候,我希望明确地“打破界限”

  • 调用私有/受保护的方法
  • 访问/更改私有字段和属性

是否有解决方法来实现这一目标?

0 投票
7 回答
196 浏览

java - 私有实例可以在对象之间共享吗?

我只被允许在我正在学习的编程课程中使用私人成员,我想知道这样的事情是否可以。

View 和 Controller 类都拥有相同的 Model 实例作为私有字段。这可以接受吗?似乎它会违反私有字段的概念。我试着问我的教授,他说没关系,但我不确定他是否理解我的问题,或者我是否理解他的回答:)

0 投票
21 回答
13133 浏览

documentation - 我应该记录我的私有方法吗?

私有方法文档只能由有权访问源代码的人查看。值得为此付出的努力吗?

0 投票
7 回答
2501 浏览

java - 从Java中的构造函数声明和设置私有最终成员变量的正确方法?

有多种方法可以从构造函数中设置成员变量。我实际上是在讨论如何正确设置最终成员变量,特别是一个由助手类加载条目的映射。

在上面的示例中,帮助程序类如下所示:

我的想法是,使用方法在构造函数中设置这样的变量是更好的做法。所以 Base 类看起来像这样:

但是现在我无法维护 final 修饰符并出现编译器错误(无法设置最终变量)

另一种方法是:

但在这种情况下,Helper 类中的方法将更改为:

所以不同的是我在哪里创建一个新地图new HashMap<String, Command>();我的主要问题是,是否有推荐的方法来执行此操作,因为部分功能来自此 Helper 的静态方法,作为加载带有条目的实际地图的一种方式?

我是在 Base 类还是 Helper 类中创建新地图?在这两种情况下,Helper 将执行实际加载,并且 Base 对包含具体命令的地图的引用将是私有的和最终的。

除了我正在考虑的选项之外,是否还有其他更优雅的方法可以做到这一点?