gpt4 book ai didi

java - 泛型与原始对象结合

转载 作者:行者123 更新时间:2023-11-29 06:51:28 25 4
gpt4 key购买 nike

我正在编写一个小型个人排序方法和数据结构库,我正试图通过使用 <T extends Comparable<T>> 允许它们使用泛型类型来使我的类更加健壮。 .当我阅读一个充满 String 类型的文本文件时,这非常有效,或者需要存储具有 compareTo() 的自定义类对象方法。我不确定的是如何将此功能扩展到一个充满数字的文本文件,所有类型 int例如。据我了解,int是原始类型,没有任何方法,包括compareTo() .这会阻止我的类接受类型 int .

  • 我的第一个想法是包装每个 intobject<T> , 然后把它喂进去。
  • 这是一个干净的解决方案,还是有更多的最佳实践方法?

谢谢。

回答,由@dasblinkenlight 提供:

  • “Java 团队已经优化了这些包装类,甚至在编译器/JVM 中内置了特殊技巧,以确保它们的性能对于包装类而言尽可能好”,因此创建自定义包装类没有任何好处,并且不应该是这种方法。

编辑:修改标题以获得更准确的引用。

最佳答案

My first idea is to wrap each int in an object<T>, and just feed it in.

您不必 - 这就是 java.lang.Integer 是为了。 Java 的所有其他原始类型都存在类似的包装器类型。

Is this a clean solution, or is there more of a best practices approach?

这取决于您的性能要求。如果包装基元是可以接受的(它适用于大多数应用程序),那么您就有了可行的方法。

在不太可能出现的情况下,这种方法不够快,您需要为每个基元类型构建特殊的类,其方式类似于 Java 对基元流的处理方式( IntStream LongStream DoubleStream 、等等)

关于java - 泛型与原始对象结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46912851/

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