Подтвердить что ты не робот

Как я могу узнать, является ли объект объектом типа String?

Я должен знать, если Object является строкой или любым другим типом класса, как я могу это сделать? В настоящее время я делаю это, как показано ниже, но его не очень хорошее кодирование.

try {
    String myString = (String) object;
    // do stuff here
} catch(Exception e) {
    // it wasn't string, so just continue
}
4b9b3361

Ответ 1

 object instanceof Type

есть true, если объект является Type или подклассом Type

 object.getClass().equals(Type.class) 

есть true, только если объект является Type

Ответ 2

Используйте синтаксис instanceof.

Так же:

Object foo = "";

if( foo instanceof String ) {
  // do something String related to foo
}

Ответ 3

Охраняйте свой бросок с помощью instanceof

String myString;
if (object instanceof String) {
  myString = (String) object;
}

Ответ 4

Используйте instanceof или метод Class.isAssignableFrom(Class<?> cls).

Ответ 5

javamonkey79 прав. Но не забывайте, что вы могли бы сделать (например, попробовать что-то еще или уведомить кого-то), если объект не является экземпляром String.

String myString;
if (object instanceof String) {
  myString = (String) object;
} else {
  // do something else     
}

BTW: Если вы используете ClassCastException вместо Exception в приведенном выше коде, вы можете быть уверены, что вы поймаете исключение, вызванное тем, что объект String будет отличен. И не любые другие исключения, вызванные другим кодом (например, NullPointerExceptions).

Ответ 6

Возможно, вам не нужно знать, в зависимости от того, что вы делаете с ним.

String myString = object.toString();

или если объект может быть нулевым

String myString = String.valueOf(object);

Ответ 7

Нельзя ли использовать typeof (object) для сравнения с