问题标签 [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.

0 投票
1 回答
14962 浏览

scala - Scala中泛型类型的模式匹配

我有如下所示的 scala 函数:

现在,根据 T 的类型(在我的情况下,它可以是DoubleBooleanLocalDate,我需要在ob. 像这样的东西(我知道代码没有意义,但我试图传达我的意思):

考虑到 Scala 的 Erasure 属性,是否可以使用反射来完成工作?甚至可能吗?

0 投票
2 回答
838 浏览

scala - 使用 Scala 泛型和清单在类中进行强制转换

我有两个班级,Holders(因为目前没有更好的名字)和 Holder。Holder 必须通过 Holders 接口,它有一个任意类型的 Holder 数组。因此,它必须采用 Any 类型。我想让 setValue 做类型检查 Any 输入确实是 T 类型。我读过一些关于使用清单的内容,但我有点迷失了。有什么办法可以做我想做的事吗?

0 投票
3 回答
146 浏览

java - 区别只是 List 和 List and List

According erasure concept I thought that

List and List<Object> are indentically but I noticed that

List<String> strList = new ArrayL

According erasure concept I thought that

List and List<Object> are indentically but I noticed that


How to discern between network flows

I want to be able to discern between networks flows. I am defining a flow as a tuple of three values (sourceIP, destIP, protocol). I am storing these in a c++ map for fast access. However, if the destinationIP and the sourceIP are different, but contain the same values, (e.g. )

I would like to create a key that treats these as the same.

I could solve this by creating a secondary key and a primary key, and if the primary key doesn't match I could loop through the elements in my table and see if the secondary key matches, but this seems really inefficient.

I think this might be a perfect opportunity for hashing, but the it seems like string hashes are only available through boost, and we are not allowed to bring in libraries, and I am not sure if I know of a hash function that only computes on elements, not ordering.

How can I easily tell flows apart according to these rules?

0 投票
1 回答
128 浏览

java - 泛型类中的泛型方法和非泛型类中的泛型方法的不同行为

我调查一般行为

我注意到:

上面的代码返回

但是,如果我使My非泛型如此

此代码返回Collection<E>

这对我来说是令人惊讶的行为,我不明白为什么会这样。

你怎么看待这件事?

PS我对简洁使用双括号初始化

0 投票
3 回答
471 浏览

scala - Scala vs. Haskell 中 List[T] 和 Set[T] 的模式匹配:类型擦除的影响

与下面代码等效的 Haskell 会产生正确的答案吗?

可以修复此 Scala 代码以产生正确的答案吗?如果是,如何?

印刷:

但我希望它能够打印:

0 投票
2 回答
262 浏览

scala - Scala 收集类型模式和类型擦除

所以

然而

警告说

因此询问是否有一种无警告/正确的方法来收集整数列表。

非常感谢。

0 投票
1 回答
59 浏览

security - gcnew 和安全擦除

我有必须使用 gcnew 分配的内存(C++,将内存传递给托管代码),其中将包含安全信息(密码、HIPAA 数据等)。我意识到这样的内存是垃圾收集的,这意味着我无法控制它何时被释放。但是,如果有一种方法可以保证在我松开它之前安全地擦拭它,那将不是问题。

有没有办法保证 gcnew 的内存被安全擦除?在我的特殊情况下,我正在 gcnew'ing String 对象,但一般的方法会更好。

0 投票
1 回答
1221 浏览

java - 尝试打印 StringBuilder 类型时得到奇怪的输出:“com.jeanlucthumm.poem.Word@7852e922”

我的程序旨在通过重复打印随机生成的行来创建一首随机诗。我有一个名为 Line 的类,它有一个可以操作的字段线:

构造函数如下所示:

词表有三种词:名词动词和形容词,每一种都有被选中的概率。

populateLine 选择并准备一个要添加到 StringBuilder 行的单词。Words 是 Word 类的对象,有两个字段:

其中 Type 是具有三种单词类型的枚举。

填充行然后通过调用调用方法的方法添加单词。第一种方法有这个签名:

该方法有一堆调用此方法的循环:

最后出于测试目的,我制作了一个打印出该行的方法:

但是当我实例化并调用该方法时,我得到了这个奇怪的输出:

谁能告诉我那是什么?我只在互联网上找到了另一篇具有这种类型输出的文章,它正在处理类型擦除,但我不确定是否适用于此。

0 投票
2 回答
91 浏览

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.

0 投票
1 回答
163 浏览

java - 由于类型擦除,构造函数不明确

我有一段遗留源代码,如下所示:

代码中使用的OpenMBeanParameterInfoSupport构造函数是在 1.6 中引入的。每当使用任何 1.6+ 编译代码时javac,我都会收到以下错误消息:

2个问题:

  1. 我知道使用原始类型是一种不当行为(openType应该声明为OpenType<?>,而不是OpenType),但是为什么 ctor 签名是模棱两可的?在第一种情况下,签名擦除是OpenMBeanParameterInfoSupport(String, String, OpenType, Descriptor),而在第二种情况下OpenMBeanParameterInfoSupport(String, String, OpenType, Object)javac应该只选择具有最具体类型(即Descriptor)的签名,不是吗?
  2. 我的同事声称他们可以使用任何 1.7 JDK 成功构建项目,并指定-source 1.6 -target 1.6,而我是唯一面临编译器错误的人。有没有办法编译代码而不改变它?我认为唯一的解决方法是将源级别设置为 1.4,这绝对不是我们的构建服务器使用的。