gpt4 book ai didi

java - 有没有办法将 Java 方法标记(例如注释)为永不返回?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:42:12 24 4
gpt4 key购买 nike

我刚刚开始使用新的 Eclipse 4.2 (Juno) Null Analysis。

像这样的代码:

x = foo();
if (x == null)
fail("x is null");
return x.bar();

我收到 x 可能为空的警告。但它不可能,因为 fail 总是抛出,因此永远不会返回。 (通过更好的过程间分析,它可能会自动确定这一点,但目前似乎没有。)

显然,有一些方法可以重写代码来绕过警告,但我想要的是一种指示(例如注释)失败永不返回的方法。

我还尝试使用@SuppressWarnings("null") 来抑制警告,但这没有用。

消除警告的一种方法是添加:assert x != null;(假设您已打开设置以在 null 分析中包含断言)

在 GCC C++ 中我可以这样做:void fn __attribute__ ((noreturn))

最佳答案

一种半传统的方法如下:

public RuntimeException fail(String message) {
throw new RuntimeException(message);
}

所以你可以写throw fail("x is null")。当然,fail 将始终以抛出结束,而不是 throw,但这足以让编译器确信该行将始终抛出。

关于java - 有没有办法将 Java 方法标记(例如注释)为永不返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11249602/

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