java - Generic 的实例作为方法参数

标签 java class generics

我在类里面使用泛型。 MyObject 必须使用 T 作为类,例如新的 MyObject(Long.class)。在 equal 方法中,我想确保提供给该方法的参数是 T 的一个实例。

Object<T>不是有效的 Java 源代码,我知道。 我将它添加到代码示例中是为了向您展示我的意思,即该值是 T 的一个实例。

但是实现equal方法的正确方法是什么??

public class MyObject<T extends Class> {

    public boolean equal(Object<T> value) {
        return true;
    }
}

最佳答案

如果您要覆盖 equals() 方法,那么您应该检查用于比较相等性的对象的类。

  1. 签名将表明您可以传递任何对象
  2. 可以在不同的对象类型之间定义相等性(不经常发生,但它是有效的)

如果您不覆盖 equals(),我会将您的方法名称更改为 distinct。否则生活会很困惑。

关于java - Generic 的实例作为方法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13084756/

相关文章:

c++ - 如何在 main 之外的函数中创建对象?

.net - VB.NET 中的 C#'s ` default` 相当于什么?

java - 为什么 Java 集合框架提供两种不同的排序方式?

java - 如何获取所有当前注册的 OSGi 服务的列表?

c# - Cast List<object> 和 Cast IEnumerable<object> 有什么区别

.net - 有机会合法投吗?

Java 参数类型错误

java - 将日期递增 1 & 循环直到月底

java - c :set jSTL tag confuses parser

c++ - 成员函数中使用的预分配变量作为成员字段是否可以优化性能? (C++)