问题标签 [final-class]

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 投票
1 回答
66 浏览

c++ - 从基类调用最终类构造函数

我有一个异常类如下:

我刚刚添加了:

...因为在其他地方有很多场合...

...已整理为:

但是,也有以下情况:

...而且我看不到如何执行等效的包装。

即写:

由于 TypeError : Exception 和 Exception::wrap 是公共的,我可以为 wrap 创建一个可选的第二个参数:

...但是我该如何调用 ::wrap 刚刚被击中的最终类的构造函数?

0 投票
4 回答
5021 浏览

swift - 我可以在 Swift 中扩展最终类吗?

我正在为使用 Swift 制作的新应用程序使用第三方库。类/库的作者使用final关键字将其设为 final,可能是为了优化和防止覆盖其属性和方法。

例子:

我是否可以在不覆盖默认值的情况下扩展该类并向其添加一些新属性和方法?

像这样:

0 投票
1 回答
5139 浏览

unit-testing - 模拟最终类并将其注入自动装配的数据成员并克服 postConstruct 方法调用

我想对带有自动装配的最终类对象的 java 类以及另一个具有 @PostConstruct 方法的自动装配类进行单元测试。虽然可以单独测试它们,但我无法将它们组合在一起。

这个问题是对将 mockito 模拟注入 spring bean的问题的扩展

要测试的代码

工作测试班

上面的代码适用于文件中设置器的需要

预期测试类

上面的代码片段模拟了 finalClass 但调用了 ResourceVerifier.class 的 @PostConstructor - 这里应该做些什么来克服这个调用。


调查

  • 可以使用@InjectMocks测试自动装配的文件,而无需弹簧上下文配置。
  • @InjectMock对于静态和最终字段静默失败,当失败时,它也不会注入其他模拟。
  • 可以使用PowerMock的 createMock 模拟最终类,并使用PowerMockRunner@PrepareForTest运行测试。但这需要新的不必要的设置器来为@Autowired字段注入模拟
  • MockitoAnnotations.@Mock不能很好地与 PowerMock 配合使用(尤其是在模拟最终类对象时),可以通过EasyMock.Annotations.@Mock解决
  • EasyMockPowerMock没有@InjectMocks注释来通过 Mockito 尽可能地注入模拟(将在几秒钟内解决问题)。
  • 可以通过SpringJUnit4Runner和单独的单元测试@ContextConfiguration注入自动装配的 spring bean
  • 可以使用PowerMockRunnerDelegate使用PowerMockRunnerSpringJUnit4Runner运行相同的测试文件
  • 我知道@PostConstruct方法如果在代码中模拟而不是通过使用spring bean 创建和注入将不会自动执行。
  • 如果编写了包装器工厂 bean 类并用于创建模拟,它会自动注入,但同时调用 @PostConstruct 方法。
  • 不可能依赖 Springockito,因为它在这个阶段是不可靠的。

但是这些都不起作用,因为用例是所有这些的组合。


可能的解决方案

  • 删除@Autowired字段并使用Setter 注入,以便可以通过使用 PowerMock(已测试工作)正常模拟来实现 - 但这是外部团队包遵循的约定 - 我应该尽我所能坚持下去。
  • 或将@Autowired 设置为设置器或构造器

备择方案?

我不认为这些类需要重组,因为它们服务于它们的目的并且设计得很好。

  • 任何其他不需要密切关注被测类的方法——如果我没有修改这个类的权限怎么办?即,纯测试库依赖解决方案。
  • 不确定PowerMockito是否可行?没有尝试过PowerMockito 与 PowerMock的组合。
0 投票
3 回答
478 浏览

c++ - C ++中多级虚拟继承中的受保护构造函数

以下代码如何工作?MakeFinal 构造函数受到保护,因此 FinalUser 类不应访问它。但我没有收到任何构建或执行错误。

0 投票
2 回答
7852 浏览

java - 带有私有构造函数的final类,设计原理是什么

我最近正在浏览一个 Netflix 开源项目

在那里,我发现了最终类和私有构造函数的使用。我完全意识到

  1. final 是为了避免继承
  2. private 是禁止实例化

但我只是想知道为什么它们都一起使用。虽然方法是静态的,所以我们可以在不实例化的情况下使用它们,但仍然渴望了解其背后的设计原理。

0 投票
1 回答
882 浏览

java - Bytebuddy - 子类最终类

我正在尝试编写一个如下所示的通用方法:

但是当最终类作为参数传递时,我得到一个异常: java.lang.IllegalArgumentException: Cannot subclass primitive, array or final types 我希望我的方法也能够对最终类进行子类化。这个问题有什么解决方法吗?

0 投票
4 回答
5999 浏览

java - “不能子类化最终类”错误,但该类不是最终类

这是我的代码:



我得到了

该类型Player不能子类化final class Character.

但我检查了一百万次,我还没有final在我的项目中使用过一次。是什么赋予了?

0 投票
0 回答
1872 浏览

mockito - 如何让模拟最终课程 mock-maker-inline 工作?

我在让 mock-maker-inline 工作时遇到问题。我按照说明

在此处输入图像描述

但是,我仍然无法模拟最后一堂课。我还尝试了文档中的示例。我想知道是否有办法调试出了什么问题?

我正在mockito org.mockito:mockito-core:3.1.0使用

谢谢,德里克

0 投票
1 回答
81 浏览

java - 即使我使用 powermockito 模拟课程,“Mockito 无法模拟此类”错误

我有最后一堂课

被测类是B类,这个类调用的是最终类A的静态方法

C班又是最后一班

我像这样嘲笑最后的A类

该案例在 C 类的方法 D 中失败。
我收到此错误Mockito 无法模拟此类:A。