问题标签 [runtime-type]

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 回答
120 浏览

scala - 获取常见 AnyVal 类型/基元的 Scala 类型名称

在我的 scala 代码中,我有一个Class[_ <: AnyVal]实例,例如从classOf[Int].

当我尝试从此(使用classOf[Int].getName)获取 scala 类型名称时,我期待看到"scala.Int",但我得到的是原始 Java 类型的名称:"int"

如何从我的Class变量中获取 scala 类型名称,以防我处理 java 原始等效项或默认的盒装 java 等效项(例如java.lang.Integer


如果您想知道我为什么需要这个;我正在使用treehugger生成一些scala代码,关于我是否需要生成例如a的信息scala.Int来自提供a的库Class[_]

0 投票
1 回答
215 浏览

c# - 如何在表达式树 C# 中使用运行时生成的类型

我正在为使用反射.emit 命名空间生成的类型构建一个使用表达式树的规则检查算法。由于某种原因,我无法让它工作。

获取异常“System.ArgumentException:'Instance property 'Parameter1' is not defined for type 'System.Object''”

我确实尝试使用expandoObject而不是创建动态类型reflection.emit,但它不起作用

如果有人可以帮助我解决问题,我将不胜感激。给出了代码示例。

0 投票
1 回答
55 浏览

dart - 在 Dart 中使用 is-operator 和使用运行时类型有什么区别

我已经通过dart codelab 进行了迭代,并偶然发现了这个代码片段:

(a) 行和 (b) 行有什么区别?对我来说,他们似乎也在做同样的事情。或者更一般地问:使用 is-operator 和使用对象的 runtimeType 属性来检查 dart 中的运行时类型有什么区别?

0 投票
1 回答
40 浏览

flutter - Dart - 如何在没有元素的情况下获取 Iterable 元素的`runtimeType`?

runtimeType当Iterable没有元素时,我如何知道accept 它应该包含哪些元素?

到目前为止,这是我徒劳的想象:

谢谢

0 投票
0 回答
53 浏览

javascript - webpack 插件可以预处理 TypeScript 文件吗?

我的问题很简单,是否可以编写一个 webpack 插件,该插件接受输入 .ts 文件,更改内容,并将输出传递给 TypeScript 编译器以处理成 Javascript。我问是因为我对 webpack 插件不太熟悉,并且正在考虑进一步调查该路线。下面是比需要更多的上下文。

我有一个自主开发的框架,旨在在 HTML5 堆栈中快速开发应用程序,其中包括大量运行时类型检查。我使用在函数和方法参数之后添加 /*param?:string*/ 类型注释的约定,类似于 TS 注释。在运行时,我有一个工具可以解析此类注释并使用有关其类型和所需参数的信息装饰函数和方法(以避免每次调用都进行解析)。然后我动态注入不同类型的类型检查,因此可以检查何时使用错误的输入调用方法或函数,但也允许花哨的“接线”检查,例如我将在哪里做:

componentA.wire('fileLoaded', componentB.onFileLoaded)

这可以在连接时(而不是稍后实际调用侦听器时)检测到 componentA 提交的事件不符合 componentB.onFileLoaded 的签名。

在我构建演示应用程序时,这种方法已被证明在解决各种问题方面非常有用。然而,我最近开始将我的框架代码转换为使用 TypeScript,它更早地发现了一组不同的问题,并且在某些情况下允许我处理更复杂的类型。

问题是,包括我在内的任何人都不想使用内联注释和 TS 注释对每个参数上的每个函数进行两次注释。它很丑陋,容易出错,并且阻碍了可读性,从而引入了更多错误。

所以我突然想到,如果我可以在编译 TS 文件之前对其进行预处理,我就可以两全其美,同时进行静态类型和运行时类型检查(可配置和可选,在每个组件、每个函数、生产与开发构建基础)。只需将所有 TS 注释转换为重复的内联注释,添加运行时代码以解析这些注释并注入运行时检查(我使用包装函数来执行此操作)。

然而,在我尝试这个兔子洞之前,我想确保这是 webpack 插件要做的事情。或者可能只是可以链接的加载器?正如我所说,我对 webpack 内部结构知之甚少,到目前为止,我只将它用于使用现有 webpack 工具构建应用程序。

0 投票
2 回答
149 浏览

java - Java继承:子类中的方法覆盖超类中的方法

这是上下文:有2个类:PersonStudent extends Person

类 Person 有 1 个方法: print(Person x) {System.out.println("Person")}(1)

学生类有2个方法:
print(Student x) {System.out.println("Student")}(2)

print(Person x) {System.out.println("Override")}(3)

然后我有:

我从讲座中得到的解释是:因为声明类型是Person,所以编译器会选择方法(1)。但是运行时类型是Student,所以方法(3)覆盖了它。
我的问题是:为什么方法(2)没有覆盖?这里的参数类型是 Student(从 (*) 行开始),方法 (2) 应该是最重要的吗?

非常感谢你们。我感谢你所有的答案

0 投票
0 回答
25 浏览

reactjs - 在反应。如何使用 TypeScript 在运行时检查子数组中的每个孩子的类型?

我想知道在这种情况下是否有办法使用 TypeScript 在运行时检查类型。该场景仅用于说明目的。