【发布时间】:2016-06-15 15:58:52
【问题描述】:
我正在用 Java 构建一个图书馆管理应用程序。
我有一个名为Material 的抽象类。它有一个名为equals 的抽象方法。
有一个名为Newspaper 的子类,它当然实现了equals,与equals 内部的Material 具有完全相同的签名:
public <T extends Material> boolean equals(Class<T> elementoAComparar) {
if (this.getTitulo().equals(elementoAComparar.getTitulo()) && this.getFechaPublicacion().equals(elementoAComparar.getFechaPublicacion())) {
return true;
} else {
return false;
}
}
Java 无法解析elementoAComparar 的任何方法。它们都存在于Newspaper 中,它确实扩展了Material。
我得到了一些帮助 on this thread of SO,但我无法让它真正发挥作用。
我想我并没有真正了解如何使用作为泛型参数工作的类的方法。
我相信这真的没有那么难,但我对 Java 的经验真的很少,请不要对我太苛刻:)
谢谢!
【问题讨论】:
-
为什么你的
equals方法将一个类作为它的参数? -
这证明我不明白我在做什么。现在我实际上明白了我在做什么,但仍然不明白我做了什么。我真的不明白“Class
”的含义。
标签: java generics generic-programming generic-method