Junit - тестовые ограничения в ограниченных обобщенных методах - PullRequest
0 голосов
/ 21 января 2019

Я хочу написать JUnit с Java для универсального метода.Я знаю, что стирание происходит в Java для обобщений, но я подозреваю, что это должно быть возможно, так как есть ParametraizedTypes.

Мне нужен способ получить строку вроде этой: T extends Comparable<? super T> или какой-нибудь способ проверить этот метод, написанный в этом формате.Я только хочу проверить ограничения.Как я могу проверить это наилучшим образом?

@SafeVarargs
public static <T extends Comparable<? super T>> T findMax(T... list) {
    if (list.length == 0)
        return null;
    T max = list[0];
    for (T item : list)
    {
        if (item.compareTo(max) > 0)
            max = item;
    }
    return max;
}   

Я хочу написать тест для этого:

class A implements Comparable<Integer> {

    @Override
    public int compareTo(Integer o) {
        // do something
    }
}

// Test Method with JUnit
A a1 = new A();
A a2 = new A();
findMax(a1, a2); // Compile error
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...