В количестве 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
должен сделать задание.
, Если столбец индексируется, Вы могли бы закончить со своего рода диапазоном, сканируют и стараются не на самом деле читать таблицу.
Вы не можете на самом деле присвоить логическое
значение логической
переменной - но вы можете преобразовать от логического
до логического
с использованием автоматической упаковки.
В JavaDocs правила довольно ясны:
Определяет, класс или интерфейс представлен этим объектом класса либо то же самое, либо суперкласс или суперинтерфейс, класс или интерфейс, представленный указанным Параметр класса. Возвращает истину, если так; в противном случае возвращается false. Если этот объект класса представляет собой примитивный тип, этот метод возвращает истина, если указанный параметр класса это именно этот объект класса; в противном случае возвращается false.
В javadocs из 1.4 уже указано, что:
Если этот объект Class представляет примитивный тип, этот метод возвращает истину, если указанный параметр Class является именно этим объектом Class ; в противном случае возвращается false.
Таким образом, поведение этого метода было зафиксировано до того, как была введена автоматическая упаковка, и его нельзя изменить (необходимо было бы ввести новый метод).
Учитывая этот отчет об ошибке , совершенно очевидно, что не все крайние случаи вокруг объекта Class и то, как автоматическая упаковка меняет ожидания, были полностью обработаны.
Чтобы ответить на вторую часть вашего вопроса, единственный известный мне способ проверить этот случай - это серия операторов if или подобного механизма разрешения, который «закрывает» примитивный тип класса.