gpt4 book ai didi

java - 是否可以用 Java Optional 记录返回值不为空?

转载 作者:行者123 更新时间:2023-12-04 16:44:33 25 4
gpt4 key购买 nike

是否可以记录返回值不是 null使用 Java Optional ?

Most tools and frameworks只关心参数,但我想用类型表示返回值不是 null (而不是在 JavaDoc 中这样做)。

更新 看线你可以同意团队使用Optional如果你想表达可能的返回值 null和直接对象,当它绝对不为空时:

public Optional<Job> getJob() {  ... }
public Job extractJob(NonNullJobHolder<Job> holder) { ... }

最佳答案

我不知道为什么你的印象是它们中的大多数只适用于参数。

org.eclipse.jdt.annotation.NonNull

@Documented
@Retention(value=CLASS)
@Target(value={FIELD,METHOD,PARAMETER,LOCAL_VARIABLE})
public @interface NonNull

org.jetbrains.annotations.NotNull

The @NotNull annotation is, actually, an explicit contract declaring that:

  • A method should not return null
  • Variables (fields, local variables, and parameters) cannot hold a null value


用法:

intellij @NotNull

javax.validation.constraints.NotNull
@Target(value={METHOD,FIELD,ANNOTATION_TYPE,CONSTRUCTOR,PARAMETER})
@Retention(value=RUNTIME)
@Documented
@Constraint(validatedBy={})
public @interface NotNull

javax.annotation.Nonnull
@Documented
@TypeQualifier
@Retention(value=RUNTIME)
public @interface Nonnull

用法:

javax @Nonnull

因此,请随意在您的方法中使用这四种中的任何一种。

关于java - 是否可以用 Java Optional 记录返回值不为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51523859/

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