import static не работает, если в классе есть методы с такими же именами, как и у импортированных

У меня есть тестовый пример Junit4 , который статически импортирует метод (ы) org.junit.Assert.assertEquals .

import static org.junit.Assert.assertEquals;

В этом классе я создал служебный метод для утверждения некоторых сложных внутренних классов, которые не реализуют равенства (а также испытывают трудности с его реализацией).

private void assertEquals(MyObj o1, MyObj o2)
{
    assertEquals(o1.getSomething(), o2.getSomething());
    assertEquals(o1.getSomethingElse(), o2.getSomethingElse());
    ...
}

Я ожидал, что код будет вести себя так, как будто я «перегружаю» импортируемые мной методы assertEquals , но похоже, что мой частный нестатический метод скрывает статически импортированные методы. Я также попытался сделать свой метод общедоступным и статическим (все перестановки), но безуспешно - мне пришлось его переименовать.

По какой причине он так себя ведет? Я не нашел упоминания об этом в документации.

6
задан RonK 6 July 2011 в 12:00
поделиться