问题标签 [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 回答
229 浏览

f# - F# 类型推断遗漏给定信息

如果我声明这个 F# 函数:

编译器抱怨:

错误 FS0752:运算符 'expr.[idx]' 已根据此程序点之前的信息用于不确定类型的对象。考虑添加更多类型约束

为 lambda 的row参数添加类型注释可以修复它:

为什么不能rowextractColumn函数的grid参数中获取类型?

0 投票
1 回答
330 浏览

c - C 样式类型注释与其他

因此,在我的编程经验中,我遇到了两种静态类型语言的类型注释:我称它们为“之前”和“之后”。C 风格语言使用格式

虽然大多数非 c 系列语言使用这种格式

前一类的例子是 C、C++、Java;后一类的例子是 Scala、Haxe、Go。

这在某些人看来可能是肤浅的,但我的问题是:每种风格的优点是什么?为什么要使用一个而不是另一个?为什么 C 一开始就采用这种风格?

0 投票
2 回答
387 浏览

java - @EnsuresNonNullIf 注释给出“条件后置条件不满足”-警告

我正在使用检查器框架和类型注释来检查@Nullable@NonNull. 在类似 Map 的类1中,Java 规范声明get(…)-methodsnull在映射不包含该键的条目时返回。因此,这些方法具有 -@Nullable注释。但是,contains(…)退货时true,我想保证get(…)不会退货null

如何指定条件 NonNull?

据我所知,您可以通过使用 注释contains(…)-methods来实现这一点@EnsuresNonNullIf,如下所示:

但是,这会导致警告:

我应该如何解决这个“不满足后置条件”的警告?

我的环境:

  • Maven:3.0.4
  • Java:1.7.0_25(甲骨文)
  • Checker 框架 1.7.0(通过 maven 插件)

这个 Gist演示了这个问题。


1)它扩展了地图的功能,以检索具有“相似”键的条目。

0 投票
1 回答
1591 浏览

java - 是否可以在运行时访问 Java 8 类型信息?

假设我在使用 Java 8 类型注释的类中有以下成员:

是否可以使用反射读取@Email运行时使用的 String 类型的注释?如果是这样,这将如何完成?

更新:这是注释类型的定义:

0 投票
1 回答
1809 浏览

java - 如何从 Java 8 中的 getAnnotatedParameterTypes() 获取泛型类型信息?

似乎返回一个包含原始类型而不是泛型类型getAnnotatedParameterTypes()的 s 数组。AnnotatedType例如:

不同意的原因是什么getGenericParameterTypes()

0 投票
1 回答
2025 浏览

global-variables - Hacklang:如何对局部/全局变量进行类型注释?

Hack 手册非常清楚地说明了如何对函数参数、函数返回类型和成员变量进行类型注释。但是,我尝试对全局变量或函数局部变量进行类型注释的所有方式都会导致语法错误:

这样的注释可能吗?如果可能,那么正确的语法是什么?如果不可能,那么这是设计使然,还是开发人员计划实现的?(肯定会有用。)

0 投票
1 回答
42 浏览

java - 您可以将注释作为对象返回吗?

假设您想返回版本而无需创建变量,或者可能是序列号或对某物的引用(@see),您可以执行类似的操作:

@Version 是在类或方法上声明的运行时可见注释(对于 Java 8,类型注释)?

0 投票
1 回答
65 浏览

java - 使用 Java 6/7 编译的注解可以用于 Java 8 中的类型参数吗?

注释的语义@Target似乎在Java 7之间发生了变化

如果注解类型声明中不存在 Target 元注解,则声明的类型可用于任何程序元素。

Java 8

如果注解类型 T 上不存在 @Target 元注解,则类型 T 的注解可以写为除类型参数声明之外的任何声明的修饰符。

(强调我的)。这具有令人讨厌的后果,即任何使用 Java 6/7 编译的注释都不能用于类型参数或类型使用。有没有办法绕过这个限制?

0 投票
2 回答
2954 浏览

scala - 如何修复 Scala 的 WartRemover 工具中的产品类型推断错误

我正在使用WartRemover工具来避免我的 Scala 2.11 代码中可能出现的错误。

具体来说,我想知道如何修复产品类型推断错误。

查看 repo 文档,我只能看到失败示例,但我想知道我应该如何修复该错误:

https://github.com/puffnfresh/wartremover#product

做完我的功课,我最终得到了另一个链接,该链接解释了如何修复类型推断失败错误https://blog.cppcabrera.com/posts/scala-wart-remover.html。我引用“如果您看到下面的任何警告,修复通常就像提供类型注释一样简单”,但我不明白这意味着什么。我真的需要一个具体的例子。

0 投票
3 回答
2547 浏览

java - 如何在 Java 中使用自定义类型注解

Java 8 具有称为类型注释 ( JSR 308 ) 的功能。我想将它用于简单的对象到对象映射器框架。我想像这样定义注释@ExpectedType

然后在我的代码中使用它,如下所示:

IObjectA是由类ObjectA_DTO和实现的接口ObjectA_Entity。我想以这种方式使用的服务:

我想更改 SomeServiceImpl 方法的调用以使用对象映射器。它可以通过使用JSR 269或 AOP 生成的代码来实现。

问题是我写了简单的注释处理器,它根本不处理类型注释。简单注释处理器的源代码如下所示:

任何想法如何使用或如何通过 SimpleAnnotationsProcessor 访问类型注释?对我来说不需要使用 Pluggable Annotation Processing API,我认为它比 Java 反射具有更好的性能。无论如何,我也不知道如何通过 Java Reflection 访问类型注释。