标签: non-nullable

不可空的引用类型(再次)

关于支持.NET中的非可空引用类型,存在许多问题.最大的希望是代码合同,但它仅限于运行时检查那些预算有限的人.

至于Code Contracts之外的其他方法,Jon Skeet 几年前写了一篇关于此的博客文章,其中一位评论者提供了一个有用的NonNull结构,修改了IL以禁用默认构造函数.这似乎是一种很好的方法,我可以想象扩展它以提供各种不可空的微型.IL操作可以是由结构上的属性触发的构建后步骤,例如

//Microtype representing a non-zero age, so we want to disable the default ctor
[NoDefaultConstructor]
public struct Age
{
    public Age(int age)
    {
        // Implementation (including validation) elided
    }
} 
Run Code Online (Sandbox Code Playgroud)

在我进一步调查之前,我想问一下是否有人知道这可能导致的任何问题?我一直没能想到.

.net non-nullable

5
推荐指数
1
解决办法
368
查看次数

使用nonnull时没有警告?

使用这样的代码:

- (nonnull NSString *)testing {
    return nil;
}
Run Code Online (Sandbox Code Playgroud)

我不应该收到编译器警告吗?我没有得到任何警告,这似乎使整个可空性的东西看起来毫无用处?

nullable objective-c non-nullable

5
推荐指数
1
解决办法
449
查看次数

所有子包的IntelliJ IDEA @ParametersAreNonnullByDefault

我使用IntelliJ的空检查机制来防止nullpointer崩溃.我已经使用答案成功将所有Java方法参数设置为@NonNull .

创建package-info.java之后,用于在Java中定义包注释.作为该包的直接后代的所有java文件都具有在我的Android Studio项目中具有默认@NonNull参数的方法.

在此输入图像描述

显而易见的问题是我需要为该包中的所有Java类定义@ParametersAreNonnullByDefault,即包括所有子包.

如何定义@ParametersAreNonnullByDefault以便它传播到所有子包java文件?我想默认使用@NonNull注释我的所有内部代码方法.

在此输入图像描述

/**
  * File: package-info.java
  * Make all method parameters @NonNull by default
  */
  @ParametersAreNonnullByDefault
  package com.intive.nearbyplaces.main;

  import javax.annotation.ParametersAreNonnullByDefault;
Run Code Online (Sandbox Code Playgroud)

java nullable intellij-idea non-nullable android-studio

5
推荐指数
1
解决办法
1293
查看次数

C# 泛型类:从可为空类型参数推断不可为空类型

我使用 C# 8 可空引用类型。

我有一个泛型类,它可能接受可为空引用类型作为类型参数。

有没有办法根据泛型类型参数声明不可为空的类型,这些参数可能是可为空的引用类型(甚至是可空结构)?

abstract class Selector<T>
{
    T SelectedItem;

    // how to make item parameter not nullable?
    abstract string Format(T! item);

    // how to make item parameter not nullable?
    Func<T!, string> FormatFunction;
}
Run Code Online (Sandbox Code Playgroud)

c# generics non-nullable nullable-reference-types c#-9.0

5
推荐指数
1
解决办法
148
查看次数

Django 1.7:Makemigration:不可为空的字段

我正在尝试在我的项目中使用 django-orderedmodel ( https://github.com/kirelagin/django-orderedmodel )。

运行 makemigrations 不起作用:

 You are trying to add a non-nullable field 'order' to slide without a default; we can't do that (the database needs something to populate existing rows).
Please select a fix:
 1) Provide a one-off default now (will be set on all existing rows)
 2) Quit, and let me add a default in models.py
Select an option: 
Run Code Online (Sandbox Code Playgroud)

我想知道我在哪里做错了。谢谢

python database django field non-nullable

4
推荐指数
1
解决办法
8394
查看次数

空分析注释包之间有什么区别?

这个问题哪个@NotNull的Java注解,我应该使用?是过时的,有点基于意见。从那时起,Java 8 以及更新的 IDE 出现了。

虽然 Java 8 允许通过集成JSR 308进行类型注释,但它没有附带任何注释。来自JSR 308 解释:Josh Juneau 的 Java 类型注释

JSR 308,Java 类型注解,已作为 Java SE 8 的一部分合并
。...
编译器检查器可以编写来验证注解的代码,通过在代码不满足某些要求时生成编译器警告来强制执行规则。Java SE 8 不提供默认的类型检查框架,但可以编写自定义注解和处理器来进行类型检查。还有很多类型检查框架可以下载,它们可以作为Java编译器的插件来检查和强制执行已经注解的类型。类型检查框架包括类型注释定义和一个或多个与编译器一起用于注释处理的可插拔模块。

仅考虑提供至少某种@CanBeNulland 的解决方案@CannotBeNull,我找到了有关以下内容的信息(可能是错误的):

java standards code-analysis nullable non-nullable

4
推荐指数
2
解决办法
597
查看次数

Flow中的非null和非undefined类型

Flow定义了所谓的"Maybe types".即?string类似于string | null | void(void是一种值undefined).

有什么样的一般类型,可以是但是任何价值nullundefined基本上类似于$Diff<$Diff<any, null>, void>if $Diff运算符能够在非对象类型上操作.

non-nullable flowtype

4
推荐指数
1
解决办法
1277
查看次数

在 FFI 中使用 ptr::NonNull 是否有效?

Rust 具有ptr::NonNull表示非NULL指针的类型。在 FFI 中使用这种类型是否安全?

是否保证具有相同的二进制表示(忽略非 FFI 上下文,例如Option优化)、对齐、寄存器使用*mut T

例如,我可以实现这个接口:

void call_me_from_c(char *without_nulls) __attribute__((nonnull));
Run Code Online (Sandbox Code Playgroud)

extern "C" fn call_me_from_c(without_nulls: ptr::NonNull<c_char>)
Run Code Online (Sandbox Code Playgroud)

我不希望这会任何事情(除了在误用NULL;时导致 UB 之外),但我希望接口记录该函数需要非NULL参数。

ffi abi non-nullable rust

4
推荐指数
1
解决办法
765
查看次数

4
推荐指数
1
解决办法
2928
查看次数

冻结的包抖动在代码生成中抛出不可为空的错误


\n我正在启动一个项目,并决定为我的模型使用 **Freezed** 的新版本,但是当我运行 flutter *pub run build_runner build* 来生成我的代码时,我收到以下错误: \
n>参数“Address”的“placeFormattedAddress”不是 nullbale,但既不是必需的,也不是用 @Default 标记的
\n>\n我正在导入 **Meta** 包,还包括 *@required* 注释;有趣的是,当我将参数从命名更改为位置时(没有花括号,效果很好)。
\n这是代码\xc2\xbf有人可以指出我出了什么问题吗?
\n**这是类**\n
import 'package:freezed_annotation/freezed_annotation.dart';\nimport 'package:flutter/foundation.dart';\n\npart 'address.freezed.dart';\npart 'address.g.dart';\n\n@freezed\nclass Address with _$Address {\n   const factory Address({\n         @required String placeFormattedAddress, @required String placeName, @required String \n         placeId,@required double latitude, @required double longitude,}) = _Address;\n\n    factory Address.fromJson(Map<String, dynamic> json) =>_$AddressFromJson(json);}\n
Run Code Online (Sandbox Code Playgroud)\n

这是我的 pubspec.yaml

\n
publish_to: 'none'\n\nversion: 1.0.0+1\n\nenvironment:\n  sdk: ">=2.12.0 <3.0.0"\n\ndependencies:\n  flutter:\n    sdk: flutter\n  \n  freezed_annotation: ^0.14.1\n  json_serializable: ^4.1.0\n  flutter_hooks: ^0.16.0\n  hooks_riverpod: ^0.13.1\n\ndev_dependencies:\n  flutter_test:\n    sdk: flutter\n …
Run Code Online (Sandbox Code Playgroud)

non-nullable dart flutter freezed

4
推荐指数
1
解决办法
3720
查看次数