问题标签 [erasure]
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.
scala - Scala中泛型类型的模式匹配
我有如下所示的 scala 函数:
现在,根据 T 的类型(在我的情况下,它可以是Double
和Boolean
)LocalDate
,我需要在ob
. 像这样的东西(我知道代码没有意义,但我试图传达我的意思):
考虑到 Scala 的 Erasure 属性,是否可以使用反射来完成工作?甚至可能吗?
scala - 使用 Scala 泛型和清单在类中进行强制转换
我有两个班级,Holders(因为目前没有更好的名字)和 Holder。Holder 必须通过 Holders 接口,它有一个任意类型的 Holder 数组。因此,它必须采用 Any 类型。我想让 setValue 做类型检查 Any 输入确实是 T 类型。我读过一些关于使用清单的内容,但我有点迷失了。有什么办法可以做我想做的事吗?
java - 泛型类中的泛型方法和非泛型类中的泛型方法的不同行为
我调查一般行为
我注意到:
上面的代码返回
但是,如果我使My
非泛型如此
此代码返回Collection<E>
这对我来说是令人惊讶的行为,我不明白为什么会这样。
你怎么看待这件事?
PS我对简洁使用双括号初始化
scala - Scala vs. Haskell 中 List[T] 和 Set[T] 的模式匹配:类型擦除的影响
与下面代码等效的 Haskell 会产生正确的答案吗?
可以修复此 Scala 代码以产生正确的答案吗?如果是,如何?
印刷:
但我希望它能够打印:
scala - Scala 收集类型模式和类型擦除
让
所以
然而
警告说
因此询问是否有一种无警告/正确的方法来收集整数列表。
非常感谢。
security - gcnew 和安全擦除
我有必须使用 gcnew 分配的内存(C++,将内存传递给托管代码),其中将包含安全信息(密码、HIPAA 数据等)。我意识到这样的内存是垃圾收集的,这意味着我无法控制它何时被释放。但是,如果有一种方法可以保证在我松开它之前安全地擦拭它,那将不是问题。
有没有办法保证 gcnew 的内存被安全擦除?在我的特殊情况下,我正在 gcnew'ing String 对象,但一般的方法会更好。
java - 尝试打印 StringBuilder 类型时得到奇怪的输出:“com.jeanlucthumm.poem.Word@7852e922”
我的程序旨在通过重复打印随机生成的行来创建一首随机诗。我有一个名为 Line 的类,它有一个可以操作的字段线:
构造函数如下所示:
词表有三种词:名词动词和形容词,每一种都有被选中的概率。
populateLine 选择并准备一个要添加到 StringBuilder 行的单词。Words 是 Word 类的对象,有两个字段:
其中 Type 是具有三种单词类型的枚举。
填充行然后通过调用调用方法的方法添加单词。第一种方法有这个签名:
该方法有一堆调用此方法的循环:
最后出于测试目的,我制作了一个打印出该行的方法:
但是当我实例化并调用该方法时,我得到了这个奇怪的输出:
谁能告诉我那是什么?我只在互联网上找到了另一篇具有这种类型输出的文章,它正在处理类型擦除,但我不确定是否适用于此。
scala - scala getClass and type erasure?
I am a little puzzled by the getClass method when used in generic type case:
Shouldn't this always been AnyRef or Any or something? Since type K info is not available in runtime?
but a(3)
will output Int
, and a("fdasf")
will output String.
Alright, this is a silly question, I get confused by the K and key's type information.
java - 由于类型擦除,构造函数不明确
我有一段遗留源代码,如下所示:
代码中使用的OpenMBeanParameterInfoSupport
构造函数是在 1.6 中引入的。每当使用任何 1.6+ 编译代码时javac
,我都会收到以下错误消息:
2个问题:
- 我知道使用原始类型是一种不当行为(
openType
应该声明为OpenType<?>
,而不是OpenType
),但是为什么 ctor 签名是模棱两可的?在第一种情况下,签名擦除是OpenMBeanParameterInfoSupport(String, String, OpenType, Descriptor)
,而在第二种情况下OpenMBeanParameterInfoSupport(String, String, OpenType, Object)
,javac
应该只选择具有最具体类型(即Descriptor
)的签名,不是吗? - 我的同事声称他们可以使用任何 1.7 JDK 成功构建项目,并指定
-source 1.6 -target 1.6
,而我是唯一面临编译器错误的人。有没有办法编译代码而不改变它?我认为唯一的解决方法是将源级别设置为 1.4,这绝对不是我们的构建服务器使用的。