gpt4 book ai didi

java - Java中的方法有 'new'修饰符吗?

转载 作者:行者123 更新时间:2023-12-03 05:45:51 24 4
gpt4 key购买 nike

是否有相当于 C#'s new 的值Java 中的修饰符?

我想将它用于单元测试 - 每个 init() 方法都应该标记为 Final 并用 @Before 进行注释。然后,jUnit 执行所有这些 init() 方法。

我不想为每个 init() 方法想出新名称,而且我绝对想将它们标记为 Final 以确保它们不会互相覆盖(另一种模式是覆盖并从每个 init() 方法调用 super.init())。

最佳答案

一种常见的模式是使您自己的“之前”方法成为 final方法,并为子类创建 protected (抽象)方法。

在父类(super class)中

@Before
public final void before() {
onBefore();
}

protected void onBefore() {

}

在子类中

protected void onBefore() {
// prepare the test fixture
}

这为您提供了两全其美的优势:

  • 在子类中重写的众所周知的方法;
  • 覆盖是可选的;
  • 父类(super class)方法永远不会被重写;
  • 当父类(super class)做出决定时,在父类(super class)作出决定之前或之后调用客户端方法。

它确实有一个缺点 - 它将你与一个父类(super class)联系在一起。不过,这对您的环境来说可能不是问题。

关于java - Java中的方法有 'new'修饰符吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1125269/

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