gpt4 book ai didi

java - < 和 > 是什么意思,比如 implements Comparable

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:40:24 28 4
gpt4 key购买 nike

Java 1.4.2 , 类 java.math.BigInteger 实现接口(interface) Comparable , Serializable .

Java 1.5.0 , 类 java.math.BigInteger 实现接口(interface) Serializable , Comparable<BigInteger> .

这只是一个例子,帮我问一下<> .我真正想知道的是 <>东西。

我的问题有三个:

  • <BigInteger> 是什么意思implements 的一部分声明是什么意思?
  • 这种语法叫什么?
  • 它有什么作用?

附:< 真的很难用谷歌搜索和 >并且不可能在 SO 中搜索 <>首先。

谢谢!

最佳答案

阅读Java Generics Tutorial .尖括号之间的东西是一个类型参数 - Comparable 是一个泛型类,在这种情况下,尖括号表示该类与其他 BigInteger 具有可比性。

对于这种情况的更多说明,请查看 Javadocs for Comparable在 1.5。请注意,它被声明为 Comparable<T> , 以及 compareTo方法采用 T 类型的参数. T 是在使用接口(interface)时“填充”的类型参数。因此在这种情况下,声明您实现 Comparable<BigInteger>意味着你必须有一个 compareTo(BigInteger o)方法。另一个类可能会实现 Comparable<String>这意味着它必须实现 compareTo(String o)方法。

希望您能从上面的代码片段中看到好处。 1.4中compareTo的签名只能接受 Object因为各种类都实现了 Comparable 并且没有办法确切地知道需要什么。然而,使用泛型,您可以指定您与特定类的可比性,然后编写一个更具体的 compareTo 方法,该方法只将该类作为参数。

这里的好处有两个。首先,你不需要做 instanceof检查并强制转换您的方法的实现。其次,编译器可以在编译时做更多的类型检查——你不能不小心将 String 传递给实现了 Comparable<BigInteger> 的对象。 ,因为类型不匹配。编译器能够向您指出这一点要好得多,而不是像通常在非通用代码中发生的那样导致运行时异常。

关于java - < 和 > 是什么意思,比如 implements Comparable<BigInteger>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/450520/

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