isAssignableFrom со ссылочными типами и типами примитивов

В количестве Oracle

SELECT COUNT(*), COUNT(TIME_STAMP_COLUMN)
FROM TABLE;

(*) возвращает количество всех строк

, количество (column_name) возвращает количество строк, которые не являются ПУСТЫМИ, таким образом

SELECT COUNT(*) - COUNT(TIME_STAMP_COLUMN) NUL_COUNT,
                  COUNT(TIME_STAMP_COLUMN) NON_NUL_COUNT
FROM TABLE

должен сделать задание.

, Если столбец индексируется, Вы могли бы закончить со своего рода диапазоном, сканируют и стараются не на самом деле читать таблицу.

13
задан Michael Myers 30 October 2009 в 15:49
поделиться

2 ответа

Вы не можете на самом деле присвоить логическое значение логической переменной - но вы можете преобразовать от логического до логического с использованием автоматической упаковки.

В JavaDocs правила довольно ясны:

Определяет, класс или интерфейс представлен этим объектом класса либо то же самое, либо суперкласс или суперинтерфейс, класс или интерфейс, представленный указанным Параметр класса. Возвращает истину, если так; в противном случае возвращается false. Если этот объект класса представляет собой примитивный тип, этот метод возвращает истина, если указанный параметр класса это именно этот объект класса; в противном случае возвращается false.

14
ответ дан 1 December 2019 в 22:39
поделиться

В javadocs из 1.4 уже указано, что:

Если этот объект Class представляет примитивный тип, этот метод возвращает истину, если указанный параметр Class является именно этим объектом Class ; в противном случае возвращается false.

Таким образом, поведение этого метода было зафиксировано до того, как была введена автоматическая упаковка, и его нельзя изменить (необходимо было бы ввести новый метод).

Учитывая этот отчет об ошибке , совершенно очевидно, что не все крайние случаи вокруг объекта Class и то, как автоматическая упаковка меняет ожидания, были полностью обработаны.

Чтобы ответить на вторую часть вашего вопроса, единственный известный мне способ проверить этот случай - это серия операторов if или подобного механизма разрешения, который «закрывает» примитивный тип класса.

7
ответ дан 1 December 2019 в 22:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: