当前位置: 首页 > 面试题库 >

方法检查是否在if-check内部进行“测试”然后“恢复”?

卢毅
2023-03-14
问题内容

我突然忘记了if-check内部方法调用的工作方式。

例:

if (list.next() instanceof AClass) {
    AClass thing = list.next();
}

仍然在此示例中,如果next()迭代到列表中的下一个对象,则两个项目是否由list.next()同一对象返回?

通常,if-check内部的方法调用是否“已测试”,然后“还原”,所以主体中相同的方法调用等于if-check中的方法?


问题答案:

答案取决于该next()方法的实现。例如,如果list为an,Iterator则每次调用都会next()使迭代器前进,因此代码中的两次调用将给出不同的结果(假设它们没有引发异常)。如果list是,也是如此Scanner。每次调用next()都会产生不同的输出。

另一方面,如果该next()方法仅返回list实例的某些属性并且不更改其状态,则对其的多次调用将提供相同的输出。

通常,称为的方法会next()更改调用它们的对象的状态,但这只是编码约定。



 类似资料:
  • 问题内容: 是否需要进行显式的if(log.isDebugEnabled()){…}检查? 我的意思是,我已经看到一些帖子提到log.debug(“something”)进行隐式调用,以查看调试模式日志记录是否已启用,然后再进行日志记录。我是否缺少某些东西,或者在使用此步骤之前有中间步骤要执行? 谢谢! 与 编辑:在上面写过:http : //java.sg/whether-to-do-a-isd

  • 问题内容: 我想看看和我的程序参数的影响,并检查多少内存我的过程中消耗。 我编写了一个简单的程序,但无法推断出结果。请帮助。 我跑了参数 。理想情况下,由于一个字符占用2个字节,因此在超过内存限制之前,它应容纳100M个字符。即使我们说,几乎没有空间用于 指针 和 length ,我也不知道,为什么它在 69926904 length 之后会 引发 错误 。 谢谢。 问题答案: 仔细阅读有关Gen

  • 我试图了解和parameters对我的程序的影响,并检查我的进程消耗了多少内存。 我写了一个简单的程序,但无法推理出结果。请帮忙。 我用参数< code>-Xms5M -Xmx200M运行。理想情况下,由于一个字符占用2个字节,在超过内存限制之前,它应该容纳100M个字符。即使我们说,很少的空间用于指针和长度,我不知道,为什么它在69926904长度后抛出错误。 谢谢。

  • 问题内容: 作为构建穷人看门狗并确保应用程序崩溃的一种方法(直到我弄清原因),我需要编写一个PHP CLI脚本,该脚本将由cron每5百万次运行一次,以检查该进程仍在运行。 基于此页面,我尝试了以下代码,但是即使我使用虚假数据对其进行调用,它也始终返回True: 接下来,我尝试了这段代码 … …但是没有达到我的期望: FWIW,此脚本与PHP 5.2.5的CLI版本一起运行,并且操作系统为uCli

  • 问题内容: 我的Java应用程序使用两个线程。从历史上看,有同步方法和专用锁对象在使用。我需要知道当前线程是否具有锁,以及它是按方法还是按对象。我怎样才能做到这一点? 问题答案: 输入同步方法时,VM会在当前对象上设置锁定。因此,以下代码具有相同的效果: 这意味着同步方法与 您代码中的任何地方。 您可以用来检查线程是否持有特定的锁。这是示例代码: 从Java 1.5开始,该软件包支持诸如Reent

  • 问题内容: 在此代码中。 我们向函数传递值。可以正常编译,但是在运行时提供了一个我没想到的。为什么它引发异常,而不是评估条件并显示“字符串为空”? 假设传递给实际参数的值是从某个进程生成的。假定该进程错误地返回了一个值并将其馈送到testFun。如果是这种情况,如何验证传递给函数的值是否为null? 一种(奇怪的)解决方案可能是将形式参数分配给函数内部的某个变量,然后对其进行测试。但是,如果有许多