当前位置: 首页 > 知识库问答 >
问题:

值无法解析或不是字段

冯阳云
2023-03-14

如果thismoving具有相同的值,则public boolean mergesWith(Tile moving)方法返回true。但当我通过执行以下操作检查它们是否相同时:

if(this.value == temp.value){
    return true;
}

然后在temp.value上向我显示错误,表示值无法解析或不是字段。

package Game2048;

// Concrete implementation of a Tile. TwoNTiles merge with each other
// but only if they have the same value.

public class TwoNTile extends Tile {

    private int value;

    // Create a tile with the given value of n; should be a power of 2
    // though no error checking is done
    public TwoNTile(int n){
        value = n;
    }

    // Returns true if this tile merges with the given tile. "this"
    // (calling tile) is assumed to be the stationary tile while moving
    // is presumed to be the moving tile. TwoNTiles only merge with
    // other TwoNTiles with the same internal value.
    public boolean mergesWith(Tile moving){
        Tile temp = moving;
        if(this.value == temp.value){
            return true;
        }
        else{
            return false;
        }
    }

    // Produce a new tile which is the result of merging this tile with
    // the other. For TwoNTiles, the new Tile will be another TwoNTile
    // and will have the sum of the two merged tiles for its value.
    // Throw a runtime exception with a useful error message if this
    // tile and other cannot be merged.
    public Tile merge(Tile moving){

        return null;
    }

    // Get the score for this tile. The score for TwoNTiles are its face
    // value.
    public int getScore(){

        return -1;
    }

    // Return a string representation of the tile
    public String toString(){

        return "";
    }
}

类平铺:

package Game2048;

// Abstract notion of a game tile.
public abstract class Tile{
  // Returns true if this tile merges with the given tile. 
  public abstract boolean mergesWith(Tile other);

  // Produce a new tile which is the result of merging this tile with
  // the other. May throw an exception if merging is illegal
  public abstract Tile merge(Tile other);

  // Get the score for this tile.
  public abstract int getScore();

  // Return a string representation of the tile
  public abstract String toString();

}

共有1个答案

董俊晖
2023-03-14

第一:你可以这样做:

public boolean mergesWith(Tile moving){
    return this.value == temp.value;
}

以获得更优雅的解决方案。

第二:需要将value变量添加到tile类中。

public abstract class Tile{
   // ...
   // add a value to Tile
   protected int value; 
   // ...
}

您已经扩展了平铺并添加了新字段。该字段不是tile的字段,并且tile不包含(看不到)该字段。

Tile t = new TwoNTile(...);

在SO上查看Java中的静态和动态绑定,或者谷歌它。

 类似资料:
  • 问题内容: 我正在将MP3播放器内置到我的应用程序中,但出现错误,指出“原始无法解析或不是字段”:mMediaPlayer = MediaPlayer.create(this,R.raw.test_cbr); 我不确定R.raw.test_cbr是什么(我没有写这段代码),有人可以解释R.raw.test_cbr是什么以及如何解决吗? JAVA: 问题答案: 我不确定R.raw.test_cbr是

  • 问题内容: 以前的人有相同的错误消息,但是解决方案始终是删除或修改某些导入的“ android.R”。我没有这样的进口,所以我真的迷路了 我正在尝试运行一个示例android google maps程序。 我正在关注本教程。http://www.vogella.com/articles/AndroidGoogleMaps/article.html 但是,当我粘贴以下代码时,eclipse给了我这个

  • 我正在学习Android教程,学习如何缓慢但肯定地制作应用程序。 我的专长是这个: 这个在我Fragment_main.xml 但我在这条线上发现了一个错误 告诉我“edit_message无法解析或不是字段”,为什么会这样? 问候 马特(男子名ˌ等于Matthew)

  • 我在应用程序中生成JSON时遇到问题。 我正在尝试一个关于使用AngularJSJavaRestful Web服务的教程。我创建了一个动态Web项目作为我的RESTful服务器,然后添加了以下库: asm-3.3.1.jar jackson-core-asl-1.9.9.jar jackson-jaxrs-1.9.9.jar jackson-mapper-asl-1.9.9.jar jackson

  • 问题内容: 好的,现在我可以解析空间了,这是我以前的问题。现在我的解析器几乎可以使用了,但是有一个我无法弄清的缺陷。 我能够在段(参见代码)和管道之间的数据之后检索数据。我无法到达的是一个级别并检索包含在管道之间并以^分隔的数据。 例如。 但是,我当前的输出将是 我收到@后面带有各种ID的异常1 [Ljava.lang.String; @ 1786e64 下面给出的注释代码造成了问题。 码: 请指

  • 问题内容: 我正在尝试使用文件中的属性,但它似乎不起作用。 这是我的代码: 此类使用批注获取属性。它也被声明为Spring Service并链接到我的文件: 使用,我将此文件链接到我的文件: 这确实有意义,对吗? 但是,当我尝试启动项目时,Tomcat抛出此异常: 或者,简而言之: 编辑: 这是我的web.xml: 我的infraContext.xml被导入到另一个名为applicationCon