问题标签 [private-constructor]

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 投票
0 回答
49 浏览

java - Junits中的Java私有构造函数

我有一个声明、初始化的常量很少的类,并且我还有一个私有构造函数。由于某些原因,我正在编写 Junits 来实现代码覆盖率。在这里,我使用了 constructor.setaccessible(true) 并初始化了类。

在断言语句中,我期望构造函数的长度为 1。

我已经为这个类实现了 100% 的代码覆盖率。但我不太确定如何。任何人都可以对此有所了解吗?

0 投票
1 回答
90 浏览

java - 实例化单例重载构造函数时遇到问题-错误:类型中的构造函数不能应用于给定类型

我在 github 上使用GautamV/J4GPG的 GoPiGo3 类来控制 DexterIndustries 的 GoPiGo3 板。该代码不是来自 DexterIndustries 的官方代码,而是来自 DexterIndustries 制作的 python 库的 Java 端口。

我只是想测试代码并且无法创建 GoPiGo3 类的实例。我正在使用BlueJ,在BlueJ中制作了GautamV的代码包,并将GoPiGo3类导入演示类。

我的研究使我相信 GoPiGo3 类被设计为单例,以确保只创建一个实例,并且具有重载的构造函数以允许其实例化的灵活性。

以下是 GoPiGo 类的相关代码:

预期的结果是 GoPiGo3 类的初始化对象。代码当前无法编译。GoPiGo 类编译没有错误,但尝试初始化 GoPiGo 类的 Demo 类没有。

我的实例化尝试是

GoPiGo3 platform = new GoPiGo3();

这会导致以下错误:

com.j4gpg3.control.GoPiGo3 类中的构造函数 GoPiGo3 不能应用于给定类型:必需:
找到 int.boolean:无参数
原因:实际参数列表和形式参数列表长度不同 您在此处使用的运算符不能用于您使用它的价值。您在这里使用了错误的类型,或者使用了错误的运算符。

当我尝试:

GoPiGo3 platform = new GoPiGo3(8,true);

这会导致以下错误:

GoPiGo3(int,boolean) 在 com.j4gpg3.control.GoPiGo3 中具有私有访问权限

0 投票
1 回答
103 浏览

java - Private method invoking from outside the class in Java

I have one class with private method now i want to access that private method outside the class, which is possible using reflection package in java. But what if we make class constructor as private, then how to access that method. In below code consider that PrivateMethodClass is having private method m1 and private constructor.

0 投票
1 回答
282 浏览

c# - c#抽象类中私有构造函数的用途是什么?

我在面试中面临以下问题。

Q1.我们可以在抽象类中有一个私有构造函数吗?

答案- 是的,我给出了一个我们可以得到的答案,然后他再次问为什么以及私有构造函数的用途是什么。我无法回答这个交叉问题。有人可以解释一下吗?实际上在 c# 中会有很大的帮助。

0 投票
3 回答
358 浏览

java - Java Final 类或私有构造函数

当我们想要关闭一个类以继承时,我们使用 final 声明类,

但是当我们将构造函数声明为私有时,效果是一样的,

但真的一样吗?代码的优化或代码的可读性有什么区别吗?哪些类必须接近继承,

  1. 不可变的类也许
  2. 每个方法和成员变量都声明为类的静态

但是即使声明了所有方法,也java.util.Arrays没有声明第二个选项。finalArraysstatic

0 投票
1 回答
33 浏览

junit - 参数化单例类测试

我正在为 Singleton 类编写测试用例。但是调用将转到原始依赖项。
模拟注入不适用于数学和艺术。

测试班

0 投票
1 回答
383 浏览

scala - 为什么私有构造函数在案例类中仍然可见?

我想将构造函数及其字段隐藏在一个类中,并且只使用伴随对象创建实例,但我无法实现。我有 scala 2.13.3,它基于 java 8。这是一个代码示例:

斯卡拉

斯卡拉

虽然我只想让apply(x:Int)这段代码编译可见,但私有构造函数也是可见的。如何更改此代码以按预期工作?

0 投票
2 回答
145 浏览

c++ - 指向具有私有构造函数的类的类成员的指针

假设我有一个带有私有构造函数的类,该类将用于表示单个对象。假设我有一些非静态成员,我想在不使用范围解析运算符的情况下访问它们。我注意到我可以通过创建一个指向类类型的指针来实现这一点。我想知道为什么即使默认构造函数是私有的,我也可以声明指向该类的指针?这是一个示例程序。

我一直在网上寻找是否可以找到答案,但无法得到我想要的东西。

0 投票
1 回答
199 浏览

c++ - 带有 std::make_shared 的密码习语。xmemory 无法访问私钥构造函数

在我的程序中,我需要一个提供单独类实例的工厂函数,因为我需要控制每个实例的详细信息并了解一次存在多少个实例。特别是返回一个 std::shared_ptr 是理想的,但这最初是不可能的,因为 std::pointer 类型的“make”函数存在一个已知问题,因为它们也需要与我的 Widget 类成为朋友,这是'不可移植,因为它依赖于那些可能改变的方法的当前实现。

为了解决这个问题,我想使用 Passkey 成语,这是直接推荐用于这种情况的,如本文底部所述:https ://abseil.io/tips/134 。我的实施也基于在这里学到的经验教训:https ://arne-mertz.de/2016/10/passkey-idiom/

这是一个示例项目,它使用与我的完整项目相同的设置:

但是,我得到

这让我完全迷失了,因为来自 xmemory.cpp 的错误表明 std::make_shared 仍在尝试访问私有构造函数。据我所知,Key实例的构造发生在属于Factory的factoryMake()函数中,然后将该实例传递给std::make_shared函数;因此,std::make_shared 不需要访问 Key 构造函数,因为已将构造的实例传递给它,这是在此上下文中使用此习惯用法的全部要点。该类本身是公共的,因此与 Key 类型交互应该没有问题,只有构造函数应该是不可访问的。

最后,我可以跳过使用 std::make_shared 而是使用带有原始指针的 shared_ptr(*T) 构造函数,但是由于它需要额外的分配,所以效率稍低,如我的第一个链接中所述。这没什么大不了的,因为我没有制作很多小部件,但我最终更愿意让更理想的实现工作。

我在这里想念什么?

0 投票
1 回答
80 浏览

c++ - 如何使用具有私有复制构造函数的对象创建数组

我有一个具有一些成员的结构和一个具有私有复制构造函数的对象,我如何创建一个包含该对象的数组。例如:我有一个对象:

我想为 ImageInformation 创建一个数组:vector 但这是禁止的