问题标签 [type-annotation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
982 浏览

read-eval-print-loop - 在 Elm REPL 中键入注释

我既是 Elm 又是函数式编程新手,从未认真使用过 Java。我正在阅读 Elm 文档,并使用 REPL,试图理解类型注释。

它们看起来非常有用:

现在您的所有积分都是专门格式化的浮点数!魔法。爱它。很想在 REPL 中使用它,但 REPL 似乎不理解类型定义:

这是 REPL 中的错误还是功能?

0 投票
3 回答
858 浏览

java - 如何访问接收器类型参数的类型注释

我正在看一个相当简单的类,它有一个定义带注释的接收器类型的方法:

我现在想访问接收器类型参数上的类型注释,@Bar但 Java 反射 API 在访问接收器时返回带注释的原始类型:

断言失败,因为返回的带注释的类型作为原始类型返回Foo。这是故意的吗?@Bar在访问返回的实现的私有属性时,我仍然可以找到注释AnnotatedType

我正在运行最新版本的 Java 8。

0 投票
1 回答
123 浏览

java - java类层次结构中不兼容的空约束与泛型

我正在将我的 java 代码库从 java7 迁移到 java8。在此过程中,我还将从 javax.annotation @Nullable、@NonNull 和 @ParametersAreNotNullByDefault 注释切换到 org.eclipse.jdt 注释,以便在 Eclipse 中进行空值分析(Mars 版本 4.5.0:Build id:20150621-1200)。在这样做时,我偶然发现了一种我无法编译的情况(因为关于基于注释的空检查的严格 Eclipse 设置),因为我无法解释。我不是在寻找一种方法来编译我的代码,而是更多地了解错误发生的原因。

我在一个包中有以下类,指定@NonNullByDefaultpackage-info.java.

我有一个由抽象类实现的接口,该抽象类又由一个具体类扩展,如下所示:

Eclipse 在 ConcreteSubSimComponent 中通知我以下问题:

这个问题似乎是由getErroneousSimulationSubComponents(). 这就是我如何指定导致我在迁移到 java8 时注意到问题的方法。我发现只需将此方法签名替换为getCorrectSimulationSubComponents(). 我不明白为什么最后一个版本有效而​​以前的版本无效。

此外,这似乎只是具体子类中的问题。直接实现接口的具体类不会显示任何问题。

我正在使用 JavaSE-1.8 和一个带有无法编译代码的示例项目,可以在https://github.com/KrisC369/NullProblemIllustration找到

0 投票
1 回答
74 浏览

elm - 理解这个榆树函数的困难

我正在学习榆树,我已经阅读了文档,现在我正在尝试注释所有示例,试图解释每个函数中发生的情况。

这个练习花了我相当长的时间来理解。

  1. 下一个类型注释是什么意思?我得到第一个参数是 aString和最后一个Html,但是中间的呢?它Result是由一个String字段和一个List String字段组成的吗?

view : String -> Result String (List String) -> Html

  1. 和上面差不多,那些嵌套类型是什么意思呢?

results : Signal.Mailbox (Result String (List String))

我将把异步位留给另一个问题,非常感谢!

0 投票
2 回答
415 浏览

java - 使用 Java 7 键入注释 (JSR 308)?

我们可以在 Java 7 项目中使用 JSR 308 类型注解(例如@NonNull,...)吗?如果是,相关的 Maven 依赖项是什么?

0 投票
1 回答
823 浏览

java - 为什么 java 8 编译器或 Eclipse 不直接支持类型注释

目前我正在研究Java8的新特性:http://www.oracle.com/technetwork/java/javase/8-whats-new-2157071.html

从上面的链接中可以清楚地看出:

Type Annotations provide the ability to apply an annotation anywhere a type is used, not just on a declaration. Used with a pluggable type system, this feature enables improved type checking of your code.

但是当我尝试在 Eclipse Neon 中添加诸如@NotNullor之类的类型注释时@Readonly,它根本无法识别这些注释!这太令人沮丧了。

我错过了什么?或者如果我需要做更多的配置,比如添加额外的 jar,为什么这仍然被列为 Java 8 的新特性?

0 投票
1 回答
1695 浏览

python - mypy:无法推断“map”的类型参数 1

尝试使用 mypy 检查以下代码时:

mypy 抛出以下错误:

calculate.py:17:错误:无法推断“地图”的类型参数 1

为什么会出现这个错误?我该如何解决?

谢谢 :)

编辑:这实际上是mypy 中的一个错误,现在已修复。

0 投票
1 回答
254 浏览

java - 可空元素的二维非空数组

在 Java 8 中,我应该在哪里放置@Nullable/类型注释以声明可空元素@NonNull的二维非null数组?

声明类型时(如在方法签名中),两者

在语法上是有效的。

同样,在定义一个值(零长度数组)时,我可以使用

或者

哪个版本是正确的?

0 投票
1 回答
764 浏览

java - 注释方法的首选修饰符顺序

根据 JLS ( §8.4.3 ),方法修饰符的首选顺序是

前提是注释(如果有)适用于方法 ( @Target(METHOD))。另一方面(第 9.7.4 节),非方法返回类型的任何类型注释void都应紧接在类型之前。

所以如果我们有一个方法注解:

和类型注释:

那么示例方法的正确(根据首选编码风格)修饰符顺序将是

现在考虑我们有一个适用于方法和类型的“混合”注释:

当在方法上使用时,这样的注释将应用于方法及其返回类型。那么首选的代码风格是什么?

或者也许下面的版本更好?

0 投票
1 回答
1114 浏览

python-3.x - Bytes-like object 或 Buffer 类型注解

如何注释类似字节的对象或缓冲区?

缓冲区协议没有接口,但我希望在我的函数中接受所有缓冲区。

我不介意它是否只是 mypy 特定的。