我想知道是否有一种方法可以使下面代码的前两行在Java中成为一行,这样就可以在一行中声明、分配和判断object:

Object object;
if ((object = queue.poll()) != null) {
    // do something with object
}

推荐答案

可能不太好看:

Optional.ofNullable(queue.poll())
    .ifPresent(object -> ... do something with object ...);

Optional.ofNullable(queue.poll()).ifPresent(object -> {
    ... do something with object ...;
});

所以你可能对异性恋有更好的看法:

Object object = queue.poll();
if (object != null) {
    // do something with object
}

Java相关问答推荐

JsonPath在多个线程中返回错误的值

无法传递消费者<;>;实例

使用JdkClientHttpRequestFactory通过Spring RestClient和Wiemock读取时达到EOF

错误:在Liferay7.4中找不到符号导入com.liferay.portal.kernel.uuid.PortalUUID;";

Java中是否有某种类型的池可以避免重复最近的算术运算?

Java中实现的归并排序算法给出ArrayIndexOutOfBound异常

为什么JAVA&S清洁器使用链表而不是并发HashSet?

如何正确创建序列图?

如何只修改父类ChroniclerView位置0处的第一个嵌套ChroniclerView(child)元素?

在Java中将int[]矩阵添加到ArrayList中,但出现错误

如何在JUNIT测试中覆盖ExecutorService?

将stringBuilder + forloop转换为stream + map

插入中的JOOQ序列,设置为VS值

本机方法(JNI)总是编译的吗?

在Java中将.GRF转换为图像文件

Java 21内置http客户端固定运营商线程

JOOQ:批处理CRUD操作使用动态表定义,如何?

Java 中的 IS 关系

setMaxTotal实际上是做什么的? (MySQL与Java和Apache BasicDataSource连接池)

如何在 Java 函数式代码中使用泛型