朋友,正好我们的帖子是“邻居”,我来帮一把。
类强制转换,目标类型和原类型应该是实现同一接口,或者其中一个是另一个的子类。
具体来说:
1、如果User继承自Principal,或者User实现了Principal接口,则这种转换有效,但是不必转换,因为不转换也可以直接用。
2、如果Principal继承自User,则User的实例必须是调用Principal的构造器生成的。
3、如果Principal实现了User接口,则同2。