Что не является экземпляром класса в Java? - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь получить условное значение для оценки false.У меня есть поле, которое является картой, которую я получил от просмотра declaredFields.Что может быть параметризованный тип Map type, который приведет к ложному условному условию?

// field is a Map from a class using reflection (declaredFields)
Type type = ((ParameterizedType) field.getGenericType()).getActualTypeArguments()[i]
if (type instanceof Class) {
    everthingsAClass()
} else {
    whatIsntAClass()
}

1 Ответ

2 голосов
/ 08 июля 2019

Существуют различные непубличные классы, кроме Class, которые косвенно реализуют Type.

Например, sun.reflect.generics.reflectiveObjects.TypeVariableImpl реализует TypeVariable, который является интерфейсом, расширяющим Type.

Другие примеры включают GenericArrayTypeImpl, ParameterizedTypeImpl и WildcardTypeImpl.

Экземпляры этих классов могут быть , возвращаемыми различными методами API отражения, такими как getGenericInterfaces и getGenericSuperclass методы Class.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...