Я хочу написать 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