Как я могу распечатать тип, размер и диапазон типа данных Java?особенно эти модификаторы? - PullRequest
0 голосов
/ 07 июля 2011

В настоящее время я могу распечатать размер шрифта и диапазон ;; примитивные типы данных Java, кроме bollean, с использованием следующего метода.

public class sizJ {

    public static void display(Class<?> type, int size, Number min, Number max) {
            System.out.printf("%-6s %-2s %-20s %s\n", type, size, min, max);
    }

    public static void main(String[] args) {
            System.out.printf("%s %-2s %-20s %s\n","type","size","min","max");
            display(Byte.TYPE, Byte.SIZE, Byte.MIN_VALUE, Byte.MAX_VALUE);
            display(Character.TYPE, Character.SIZE, (int) Character.MIN_VALUE, (int) Character.MAX_VALUE);
            display(Integer.TYPE, Integer.SIZE, Integer.MIN_VALUE, Integer.MAX_VALUE);
            display(Float.TYPE, Float.SIZE, Float.MIN_VALUE, Float.MAX_VALUE);
            display(Double.TYPE, Double.SIZE, Double.MIN_VALUE, Double.MAX_VALUE);
            display(Long.TYPE, Long.SIZE, Long.MIN_VALUE, Long.MAX_VALUE);
            display(Double.TYPE, Double.SIZE, Double.MIN_VALUE, Double.MAX_VALUE);

            display(SignedDouble.TYPE, Double.SIZE, Double.MIN_VALUE, Double.MAX_VALUE);
    }

}

Код скопирован с форума.

Вопрос в том, как мне напечатать одно и то же для, скажем, подписанного длинного или подписанного символа или беззнакового целого?

Пожалуйста, помогите.

1 Ответ

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

Много вещей, чтобы уточнить здесь ...:

  1. В Java нет неподписанных примитивов, таких как C - кстати, это серьезная проблема для тех, кому нужно много битовых комбинаций , например. реализовать хэш-функцию. Здесь нет ключевого слова unsigned, типов без знака и, конечно же, нет соответствующего размера шрифта.

  2. Java имеет только восемь типов примитивов : boolean, byte, char, double, float, int, long, short

  3. Java также имеет восемь соответствующих классов, в основном используемых для автобокса , но также для предоставления информации о примитивных типах, как видно из вашего примера кода.

  4. Модификаторы (например, public, final, static) влияют только на видимость и семантику доступа примитива - , а не его базовые свойства, такие как его размер или диапазон.

  5. Термин «тип данных» также относится к типам объектов. Java не имеет эквивалента для оператора C sizeof, так как он вам не нужен для выделения памяти, как в C. Если вам do нужно знать, что объем памяти объекта выглядит так: здесь .

...