【问题标题】:Java: How to cast a class to a subclass?Java:如何将类转换为子类?
【发布时间】:2017-01-03 22:46:16
【问题描述】:

我有一个名为 GameObjectsCls 的抽象类和一个名为 AllTilesCls 的子类...

public abstract class AllTilesCls extends GameObjectsCls

...但由于某种原因,我无法将超类的引用转换为子类以从该子类获取 public Boolean 字段值?

if((AllTilesCls)(handler.getObjectPlacement().getSelectedObject()).built){
    ...
}

我该如何解决这个问题?

【问题讨论】:

  • if(((AllTilesCls)(handler.getObjectPlacement().getSelectedObject())).built())
  • 根据this operator precedence table,用于成员选择的点比类型转换具有更高的优先级。所以你试图转换 built() 方法的结果,而不是你想要调用它的对象。 @DavidPérezCabrera 评论中添加的括号弥补了这一点。下次请引用您收到的错误信息,这样对您的帮助会容易很多。

标签: java class casting


【解决方案1】:
if(((AllTilesCls)(handler.getObjectPlacement().getSelectedOb‌​ject())).built())

– David Pérez Cabrera 5 分钟前

这行得通。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-04
    • 1970-01-01
    • 2015-10-08
    • 1970-01-01
    • 1970-01-01
    • 2016-10-19
    • 1970-01-01
    • 2018-06-13
    相关资源
    最近更新 更多