Метод с общим параметром в его интерфейсе:Как переопределить общий isEqualTo из AbstractAssert
interface Assert<S, A> {
S isEqualTo(A expected);
перекрывается с Object
параметром в абстрактном классе:
abstract class AbstractAssert<S ..., A> implements Assert<S, A> {
@Override
S isEqualTo(Object expected)
Как переопределить isEqualTo()
с общий параметр A
от Assert<S, A>
, as
class MyAssert extends AbstractAssert<MyAssert, MyClass> {
@Override
MyAssert isEqualTo(MyClass expected)
терпит неудачу из-за типа стирания:
конфликт имен: isEqualTo (МойКласс) в MyAssert переопределяет метод которого стирание такого же, как другой метод, но ни перекрывает другой
первого метод: isEqualTo (Object) в AbstractAssert
второй метод: isEqualTo (А # 2) в Assert
где А # 1, # 2 являются тип-переменные:
A # 1 проходит Объект объявлен в классе AbstractAssert
A # 2 проходит объект объявлен в интерфейсе Assert
Есть ли другой способ?
Какой assertJ
коэффициент усиления теневого параметра с объектом?