java.lang.AutoCloseable的close()方法的Java文档说
请注意,与Closeable
close()
方法不同,此方法不需要是
幂等的 。换句话说,多次调用此close方法可能会产生一些可见的副作用,
这与不止一次调用而没有效果的情况不同。但是,强烈建议此接口的实现者使其封闭方法成为幂等。close()
__Closeable#close()
幂等 方法是什么 意思,close()
两次调用此方法有什么副作用?
而且由于接口Closeable
扩展,AutoCloseable
为什么在Closeable
接口关闭时看不到副作用?
幂等意味着您可以多次应用该操作,但是一个调用的结果状态与多个调用的结果状态是无法区分的。简而言之,多次调用该方法是安全的。实际上,第二个和第三个(依此类推)调用对程序状态没有可见的影响。
因此,如果您一次关闭此对象并将其关闭,则您将没有足够的信息来知道它是否是幂等的。但是,如果将它关闭两次,第一次关闭,但是第二次抛出异常,则显然不是幂等的。另一方面,如果您将其关闭一次,然后将其关闭两次,并且第二次关闭导致该项目以相同的方式保持关闭状态(也许是noop),则它是幂等的。
制作幂等的一种技术Closeable
可能是:
public class Example implements Closeable {
private boolean closed;
public Example() {
closed = false;
}
public void close() {
if (!isClosed()) {
closed = true;
}
}
public boolean isClosed() {
return closed;
}
}
现在很明显,如果close()
调用一次或多次,则状态的所有返回isClosed()
将永远返回true。因此,该方法close()
将被视为幂等的。
Java.lang.AutoCloseable的close()方法的Java文档说 注意,与Closeable的方法不同,此方法不要求是幂等的。换句话说,多次调用此close方法可能会产生一些明显的副作用,这与不同,如果多次调用该方法,则要求该方法无效。但是,强烈鼓励该接口的实现者使其闭式方法是幂等的。 他们所说的幂等方法是什么意思,两次调用这个方法有什么副作用? 既然interface扩展了,为
问题内容: 我遇到了这段代码,我不退出这一行来理解它的含义或它在做什么。 我知道是什么还是什么,但是什么是? 问题答案: 这是构造函数重载: 您可以通过缺少返回类型来判断此代码是构造函数,而不是方法。这与在构造函数的第一行中调用以初始化扩展类非常相似。您应该在构造函数的第一行中调用(或的任何其他重载),从而避免构造函数代码重复。 您也可以看看这篇文章:Java中的构造方法重载-最佳实践
这是一个使用合并排序的程序,从1到1000对1000个数字的列表进行排序。它显示原始列表,然后调用递归方法对其进行排序,然后显示。 代码中我不明白的是这两行: 合并排序(数字,低,中);//在方法中,它会说“这里” 合并排序(数字,中间1,高); 我是java的初学者,这与我所学的一切背道而驰,因为我无法理解如何在方法中调用方法。除非它是一个我怀疑的对象。有人能解释一下这两行代码的作用吗?
那么当我使用调用异步方法时会发生什么呢?整个方法的操作会以同步的方式完成吗?例如,如上面所示,我在中有三个异步操作;、&,那么它们是否会以同步方式执行,因为我使用.wait()调用ScanAsync方法?
如果我有一个长时间运行的 方法,我在 操作方法中调用它而不等待它,是否保证即使从操作方法返回之后它也会完成? 示例: 编辑: 在谷歌搜索时,我确实发现了如何在C#中安全调用异步方法而无需等待,但我想知道是否有人能具体说明一下ASP.NET MVC。当仔细查看问题中的所有答案时,以下答案/链接中有一些信息:https://stackoverflow.com/a/15523793/585968,如@m
问题内容: 我已阅读以下讨论: 如果私有帮助器方法可以是静态的,则它们应该是静态的;如果它们的类没有成员变量,则所有方法应该是静态的。 似乎人们通常会接受静态方法,但由于以下两个原因,对此有些怀疑: 他们很难测试。 他们违反了OO原则。(一个人说,它们是函数,而不是方法。) 最可接受的静态方法是 私有静态 方法。但是,为什么为什么根本不存在静态方法呢?在什么情况下,它们是最优先采用的方法? 问题答