问题标签 [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.
java - 实现 Map.entrySet() 的泛型问题
我正在尝试扩展AbstractMap
以创建一个MapTreeNode
类(通过键而不是索引访问子节点的树节点)。
我已经有一种方法可以让一组孩子正常工作:
我想创建一个节点(Map<K,V>
)的地图视图并重用child_set
,但我不确定 Java 的泛型是否可行:
这当然给
有没有办法可以为此重用我的ChildSet
课程?
java - 以编程方式确定 java 实例的编译类型
假设我有一个扩展 java.lang.Object 的类,如下所示:
以及以下三个实例:
为了确定runtime-type,我只需要在实例上调用getClass()方法,如下所示:
哪个输出:
现在我的问题是如何以编程方式确定上述实例的静态/编译类型?
静态/编译类型是指“左侧”的类型。它会输出:
c# - 为什么我会使用此代码获得“无效演员表”?
我有一个包含以下类型控件的表单(仅):
我有一个调用此方法的“清除”按钮:
...但是当我调用它时,应用程序挂起,并且日志文件显示该方法的“无效转换”。怎么可能?它应该处理 TextBoxes 和 ComboBoxes,而忽略其余部分 - 无效演员表可能在哪里?
scala - scala按类型过滤
我已阅读TypeTag
相关文章,但无法实现按元素类型过滤集合。
例子:
上面的代码工作正常。但是我想从中提取filter
. v
例如
在这种情况下,我会收到警告abstract type T is unchecked since it is eliminated by erasure
。我尝试使用TypeTag
,但运行时似乎并不容易Type
。
是否有任何优雅的解决方案来实现功能filter
?通过 scala 宏的任何解决方案也是可以接受的。
java - 在方法中将类作为参数传递并在 If 语句中使用此参数
我想要这样的东西:
我主要谈论这部分:(iterator.next() instanceof clazz)
- 这甚至可以像这样将 Class 作为参数传递吗?Eclipse 说“无法将 clazz 解析为类型”。
c++ - 来自 void 的演员表的运行时检查*
假设我有一个void*
包含指向 unknown 的指针class
。我想用来dynamic_cast
对我实际拥有的类的类型进行运行时检查。例如:
如果我尝试这样做,dynamic_cast<Foo*>(bar)
我会得到:
'void *':dynamic_cast 的无效表达式类型
但是我需要 dynamic_cast
,因为在我的实际情况下,我不确定这bar
实际上是一个Foo*
.
我在这里读过,一个解决方案是为所有bar
可能包含的对象创建一个基类,reinterpret_cast
指向该基类的指针,然后尝试dynamic_cast
从该对象指针指向Foo
.
这对我来说很难,因为可能存储的对象bar
并不都在我的控制之下。(并且尝试重新创建 Java 让我心痛。)还有其他方法可以做到这一点吗?
python - python中的变量类型检测
我正在研究在python(2.5+)中检测变量类型(列表与字符串)的方法,并遇到了一些其他似乎过于复杂的答案。
我发现一个可以做
获取包含类名的字符串。如果有的话,这有什么问题?不是便携吗?什么时候会失败?
c++ - 有效运行时定义类型的惯用语,互操作的域限制
严格来说,类型是 C++ 中的编译时构造。然而,有时对象的一些常量运行时特性被有效地定义为运行时类型。
例如,如果有一个几何向量,其中,由于框架限制,尺寸仅在运行时已知(否则我会将尺寸设为模板参数),例如从文件中读取。
维度是运行时这一事实并不意味着应该能够比较、分配或组合具有不同维度的向量。如果想在代码中引入这种逻辑,就必须限制一堆操作。这可以通过断言或抛出来完成,仅在运行时。
所以,例如,一个人会实现这个,
vec
实施std::vector
后尺寸不会改变。
这样做的问题是,最终会在所有函数中编写限制。
我的问题是,是否有任何习惯用法或工具可以通过限制(在运行时)使用不兼容对象执行的操作,特别是帮助编写更少重复的代码来帮助解决这个问题。
请注意,我不能使用std::array<double, 4>
or3>
因为4
and3
可能是运行时变量。
这个有效运行时类型的概念有名字吗?有没有被调查?
可能发生这种情况的其他示例:
1) 想象一下拥有可变大小的 NxN 数组并尝试定义数学加法。N 将是运行时的(甚至在构造后是常数),并且必须检查一个人没有添加不同大小的数组,还希望任何不兼容的比较都会触发错误。
2) 更一般地说,这个哲学问题可以出现在具有固定成员的类中。这有点做作,但假设一个人被迫拥有const
成员
可以限制这一点:
我想象的唯一自动解决方案是系统地重载成员类型中的某些运算符(例如operator=() const
)以强制执行此操作。
但是其中一个取决于(依赖)特殊成员类型,例如:
后来为了保持一致和系统,人们会写:
json - 如何在 Swift 中创建两个通用 T:Codable 结构的差异?
给定:我有两个相同类型的结构,符合 Codable 协议。结构可以是多级的(嵌套属性,当然也符合 Codable)。该类型在实现时是未知的,所以我认为它是通用的,符合 Codable。
一个对象是“base”(例如,从服务器接收),第二个(实际上是“base”的副本),但在应用程序内部进行了修改。
目的是:发送保存新数据的请求,但仅发送两个结构的“差异”。因此,只有不同的字段应该出现在结果 JSON 中。
为两个结构获取 JSON 字符串并使用它们进行操作的直接方法是可以理解的,但似乎是最后机会的方法......
我已经尝试过使用 Mirror 和递归的方法,但现在已经设法使其仅适用于第一级 - 在第二级嵌套上,我丢失了嵌套属性的类型(如果是结构或数组),并且无法转换那时就...
我想知道是否可以使用自定义编码器以某种方式制作它?
PS:泛型类型的所有属性都应该是可选的,所以不应该提供任何显式的初始化器。
java - 如何在泛型重载java中解析运行时类型
我想用泛型在运行时解析类型。这是我的代码。
如何在泛型类中使用/调用方法 print(String string),print(Integer integer)。
即使我尝试过
这是使用对象签名调用相同的方法。
还尝试了以下操作,它也使用对象签名调用相同的方法。
对于所有上述情况,输出将是。
以下是我想要的
请教育我。