我的对象无法解析或不是字段

时间:2013-06-20 22:54:33

标签: java

现在我正在学习Java,但我遇到了问题 if ( (maPartie.getEchiquier().getPiecePosition(pos).getPosition())==Partie.posPieceAttaquanteEchec) )posPieceAttaquanteEchec无法解析或不在现场,我找不到问题所在..

感谢帮助我,我是一个开始,我只想学习;)

    while(maPartie.estEchec(joueurActuel)) {
        if (maPartie.getEchiquier().getPiecePosition(Partie.posPieceAttaquanteEchec) instanceof Roi)

                            //
                            //
    do {
        String str;
        do {    
        System.out.println(joueurActuel.getNom()+ " - Piece à déplacer : ");
        str = whichpiece.nextLine();
        } while (str.length() == 0);

        if (str.equals("1")) {
        Coup petitRoque = new Coup(1);
        maPartie.jouerCoup(joueurActuel, petitRoque);
            roque = true;
            break;
        } else if (str.equals("2")) {

    Coup grandRoque = new Coup(2);
    maPartie.jouerCoup(joueurActuel, grandRoque);
            roque = true;
            break;
    }

    p = maPartie.getEchiquier().getPiecePosition(new Position(str));
        if (p != null) {

        Couleur couleur = joueurActuel.getCouleurPieces();


        List<Position> listPos = p.positionsAtteignableEchiquier(maPartie.getEchiquier());
         for (Position pos : listPos) {
            if ( (maPartie.getEchiquier().getPiecePosition(pos).getPosition()) == (Partie.posPieceAttaquanteEchec) ) {

System.out.println("La piece choisie est : " + p + " positions possibles --> " + p.positionsAtteignableEchiquier(maPartie.getEchiquier()));
        echec = true;
        String str2;
        do {
         System.out.println(joueurActuel.getNom() + " - Déplacement à faire : ");
         str2 = whichpiece.nextLine();
        } while (str2.length() == 0);

        Coup coupPiece = new Coup(p, new Position(str2));
       maPartie.jouerCoup(joueurActuel, coupPiece);             

         break;
        }
        else {

            }
        }
        }
        } while(p == null);
        }

1 个答案:

答案 0 :(得分:1)

更多代码会有所帮助(我不懂法语?)。但基本上你是在试图访问一个未在任何地方定义的变量。您静态引用posPieceAttaquanteEchec,这意味着它使用static关键字声明,如下所示:

class Partie
{
   static private int posPieceAttaquanteEchec;
}

变量的对象版本将被定义为:

class Partie
{
   private int posPieceAttaquanteEchec;
}

如果要引用变量的对象版本,可以使用:

maPartie.posPieceAttaquanteEchec