gpt4 book ai didi

java - 为什么类型删除概念被如此广泛地使用?

转载 作者:搜寻专家 更新时间:2023-10-31 20:12:32 25 4
gpt4 key购买 nike

我的问题主要是关于Scala的,但由于它最终还是使用了JVM,有其特殊性,所以我也加上了java标签。

我使用参数化类型越多,出现上述问题的频率就越高。类型删除带来了很多不便(像 case x: A[B] 这样的模式匹配变得不可能等等)并且有相当繁重的基于运行时反射的解决方法涉及在运行时携带类型信息的额外对象,所以我(从我的用户角度来看,只是出于好奇)想知道是什么决定导致了这片土地的当前位置。

运行时信息处处携带完整类型是否太复杂?或者也许它没有那么多用例,所以它不只是经常被需要?不管怎样,类型删除的优缺点是什么?

编辑:我想关于这个主题有一些合格的讨论、论文或帖子等,我希望答案得到理论上的支持或至少包含某种 CS 推测,而不仅仅是 “运行时类型是一种不好的做法”。这不是您是否确实遇到过问题的问题 - 这是关于导致决策的 CS 基础。

最佳答案

Is carrying complete type everywhere up to runtime information too complicated?

这样做是为了向后兼容,而不是为了降低复杂性。

Or maybe there are not so much use cases for it so it isn't just being needed that often?

它并不经常需要,但在需要时却令人困惑。

Anyway, what are pros and cons of type erasure?

鉴于自 2004 年以来一直是这种情况,我怀疑这真的无关紧要,因为无论利弊如何,它都不会发生重大变化。有一个解决此问题的概念性计划,但它的优先级不高,可能不会进入 Java 9。

关于java - 为什么类型删除概念被如此广泛地使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18684633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com