- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
使用 CLANG_ANALYZER_NONNULL
(即 -Xclang nullability
),我得到“Null is returned from a function that expected to return a non-null value":
使用 Xcode 7.3 和 iOS 9.3 文档,我检查了 initWithFrame:
并且它可以返回 nil
:
但是UIView.h用NS_ASSUME_NONNULL_BEGIN
封装了所有东西,所以我们可以解释如下:
作为:
- (nonnull instancetype)initWithFrame:(CGRect)frame NS_DESIGNATED_INITIALIZER;
所以文档解释它是nullable
,而头文件说它是nonnull
。信任哪一个?
我应该写:
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (!self) {
// workaround for clang analyzer
return (void * _Nonnull)nil;
}
// Initialization code
return self;
}
或者:
- (nonnull instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
// Initialization code
return self;
}
🔴🔴🔴
Xcode 文档已更新,现在:
所以不再有冲突。
最佳答案
在 UIView
的 -initWithFrame
初始化器的情况下,建议不要防御性地检查调用 super 初始化器的结果,因为应用程序实际上没有什么可以从失败的 UIView
分配中恢复。
此外,从 Xcode 7.3 beta 4 开始,静态分析器不再在此处发出警告。它现在不会对从 -init
、-copy
和 -mutableCopy
系列返回 nil 发出警告,即使这些方法具有返回类型使用 nonnull
类型限定符来避免对这种常见的防御性习语发出警告。
关于ios - `[UIView initWithFrame:]` : nullable or nonnull? 的冲突文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35532777/
我正在使用 IntelliJ 13.1.5 和 Java 8 SDK,我已经设置了 IntelliJ 内置的空性检查器以使用 checkers.nullness.quals.NonNull 作为我选择
Lombok's @NonNull VS javax.annotation.Nonnull 哪个更适合用于方法参数以及何时使用? The answer here模糊地比较了所有注释,但无法推断出哪一个
这两个注解有什么区别? org.jetbrains.annotations.NonNull android.support.annotation.NonNull kotlin 编译器 IntelliJ
这是我的数据代码: import androidx.room.ColumnInfo; import androidx.room.Entity; import androidx.room.Primary
Java 允许将参数和返回标记为 @Nonnull。 对我来说,这感觉是一种不好的做法,我不想在 99% 的用例中告诉它它不应该为 null 并用无用的噪音污染代码。 相反,我更愿意告诉它 - 给定包
我要安装Pushe plugin对于 flutter ,但我遇到了这个错误: 我什至将这一行添加到 native 导入中: 导入 android.support.annotation.NonNull;
我想我会更深入地研究旧的 Java 功能,例如注释。我遇到了 Java 8 类型注释,它使我们能够扩展 Java 类型系统。IntelliJ 注释库或 Checkerframework 中最常见的注释
我的 Controller 中有以下方法: @PostMapping("/register") public String registerNewUser(@Valid User user,
我是 @Nonnull 注释的新手。 我尝试使用它并编写了以下测试: public class TestNonull{ public static void doSmth(@Nonnull I
我不明白 NonNull 注释应该如何提供帮助。所以,假设我有这个: void noNullArg(@NonNull Object o) { // stuff } 如果我这样做,我会收到一条关
我的类的一个 String 成员变量是 Optional。用 Lombok 注释 @NonNull 标记它是否有意义? 如果成员变量是Map而不是String,我想问同样的问题。答案会改变吗? 最佳答
我正在使用 org.eclipse.jdt.annotation.NonNull 为静态空值分析添加额外信息。我不知道如何正确注释数组: 我怎么能说数组引用是非空的? 我怎么能说数组由非空元素组成?
虽然我认为应该有一个关于是否继承注释的通用规则,但我特别感兴趣的是让 FindBugs 识别我的规则,所以这个问题是 FindBugs 特定的。 据我所知,JavaDoc 注释取自接口(interfa
我的问题是 this one 的后续问题。 . 在过去的 FindBugs 版本中,可以使用 @DefaultAnnotation(Nonnull.class) 或 @DefaultAnnotatio
@nonnull inflater 错误,谁能解决这个错误?我是 android 的新手,我不知道如何解决这个错误的任何解决方案?是主题错误还是其他原因,我的代码有什么大问题吗??你能解决这个错误吗?
这个问题在这里已经有了答案: Non-nullable string type, how to use with Asp.Net Core options (1 个回答) 2年前关闭。 我有一个在 E
我知道使用方法nonnull和 nullable是 nonnull: the value won’t be nil; bridges to a regular reference. nullable:
我在这段代码上遇到了这个错误。 You must annotate primary keys with @NonNull. "uidString" is nullable.当我用@NonNull 和@
这个问题在这里已经有了答案: Meaning of Android Studio error: Not annotated parameter overrides @NonNull paramete
我想在我的应用程序中使用 FindBugs 来检测空指针故障,我关心的是代码 public class Test { public static void main(String[] args
我是一名优秀的程序员,十分优秀!