我怎么知道Object是否是String类型对象?

new*_*bie 42 java

我必须知道如果Object是String或任何其他类类型,我该怎么办?目前我这样做,如下,但它不是很好的编码.

try {
    String myString = (String) object;
    // do stuff here
} catch(Exception e) {
    // it wasn't string, so just continue
}
Run Code Online (Sandbox Code Playgroud)

And*_*s_D 86

 object instanceof Type
Run Code Online (Sandbox Code Playgroud)

true对象是一个Type或一个子类Type

 object.getClass().equals(Type.class) 
Run Code Online (Sandbox Code Playgroud)

true仅当对象是一个Type


jav*_*y79 21

使用instanceof语法.

像这样:

Object foo = "";

if( foo instanceof String ) {
  // do something String related to foo
}
Run Code Online (Sandbox Code Playgroud)


mR_*_*r0g 10

保护你的演员 instanceof

String myString;
if (object instanceof String) {
  myString = (String) object;
}
Run Code Online (Sandbox Code Playgroud)