编译Java对象转换中的错误

kik*_*unk 3 java object instance object-type

我有一个问题,我想知道是否有人知道原因:

if(n.getInfo() instanceof Token){
   //Token abc = n.getInfo();
  System.out.print("ouch!");
}
Run Code Online (Sandbox Code Playgroud)

当它运行时,它打印出来ouch!.

但是,当我取消注释该行时

  Token abc = n.getInfo();
Run Code Online (Sandbox Code Playgroud)

它给出了编译错误:

error: incompatible types: Object cannot be converted to Token
        Token abc = n.getInfo();
Run Code Online (Sandbox Code Playgroud)

我不明白,因为它是一个实例Token,所以它怎么不能转换成Token

谢谢.

Ell*_*sch 6

你已经测试过它是一个实例,你需要添加一个演员

Token abc = (Token) n.getInfo();
Run Code Online (Sandbox Code Playgroud)

  • 你可能想提一下这里的赠品是为getInfo()delcared的返回类型... (3认同)