Я получаю Class<?>
от третьего лица .jar, относящегося к типу параметра метода. Мне нужно предпринять разные действия на основе того, что это такое Class<?>
.Как проверить класс типа java.lang.Number
Если это какой-либо этот подкласс java.lang.Number
(например, Integer
, или BigDecimal
) Мне нужно выполнить специальный курс действий.
Я не могу использовать instanceof
. И я боюсь, что если я использую:
Class<?> someClass = getParameterTypeFrom3rdParty();
if(someClass == Number.class)
// ...
Тогда он будет выполняться, если Class<?>
является толькоNumber
. Как я могу включить наследование в микс, чтобы получить все подтипы Number
?
Заранее благодарен!
Wow! Спасибо, Джон! Из любопытства, это тоже работает для интерфейсов? Я хочу проверить, является ли что-то вроде функции CharSequence (например, String, StringBuffer и т. Д.). Было бы неплохо использовать CharSequence.class.isAssignableFrom (someClass) ... еще раз спасибо! – IAmYourFaja
Добро пожаловать. Да, он тоже работает для интерфейсов –
@AdamTannon [API docs] (http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#isAssignableFrom%28java.lang.Class% 29) четко указать, как он используется. –