Как проверить, является ли объект конвертируемым в другой тип?

предположим, у меня есть два строковых объекта: "25000.00" и "1234", которые моя программа получает во время выполнения. Как проверить, если они castable преобразуемым в тип double и int, соответственно? Есть ли способ или ключевое слово в Java, который делает это уже?

3 ответов


можно использовать Integer.parseInt или Double.parseDouble статические методы для этого. Каждый из этих методов принимает в String и преобразует их в int или double по мере необходимости. Вы можете проверить, является ли строка конвертируемой, вызвав эту функцию. Если преобразование возможно, оно будет выполнено. В противном случае методы будут бросать NumberFormatExceptions, которые вы можете поймать и ответить. Например:

try {
    int value = Integer.parseInt(myString);
    // Yes!  An integer.
} catch (NumberFormatException nfe) {
    // Not an integer
}

надеюсь, что это помогает!


просто для уточнения: String is никогда приводим к Double или Integer.

вы можете парсить строка как число с помощью Double.parseDouble и Integer.parseInt методы. Если они не являются parsable то NumberFormatException будет брошен. Вы можете поймать это и справиться с этим соответствующим образом.

литье и извлечение это совершенно разные вещи.

EDIT: I see @BalusC отредактировал вопрос и изменил "cast", чтобы "преобразовать". Думаю, мои комментарии сейчас излишни:)


В C# существует метод проверки того, может ли объект быть приведен к другому объекту. Но, наверное, целое.parseInt или двойной.parseDouble достаточно.