【问题标题】:cannot be resolved to a variable error in Eclipse, using enum variable in another class无法解决 Eclipse 中的变量错误,在另一个类中使用枚举变量
【发布时间】:2018-04-14 04:25:35
【问题描述】:

我正在使用 Eclipse Oxygen,但在我的程序中出现此错误“Ruka 无法解析为变量”,该程序由三个类组成,我无法理解我的错误在哪里,这个变量“Ruka”被定义为另一个类中的枚举方法为

" public enum Ruka {
    LEVA, PRAVA;
}                 "  

这是程序中发生错误的第二类:

import java.util.*;
public class Ppa1u04 {
    public static Scanner sc;
    public Postava prvniPostava;
    public Postava druhaPostava;
    public Postava vytez;

public static Postava nactiPostavu() {

        System.out.print("Jmeno postavy: ");
        String jmeno = sc.nextLine();
        System.out.print("Sila: ");
        int sila = Integer.parseInt(sc.nextLine());
        System.out.print("Hbitost: ");
        int hbitost = Integer.parseInt(sc.nextLine());
        System.out.print("Zdravi: ");
        int zdravi = Integer.parseInt(sc.nextLine());

        Postava postava = new Postava(jmeno, sila, hbitost, zdravi);

        System.out.println(" ");

        return postava;
    }

    public static Zbran nactiZbran() {

        System.out.print("Nazev zbrane: ");
        String nazev = sc.nextLine();

        if(nazev.equals("")) {
            System.out.print("\n");
            return null;
        }

        System.out.print("Utok: ");
        int utok = Integer.parseInt(sc.nextLine());

        System.out.print("Obrana: ");
        int obrana = Integer.parseInt(sc.nextLine());

        Zbran zbran = new Zbran(nazev, utok, obrana);

        System.out.println(" ");

        return zbran;
    }
    // from here
    public static void vyzbrojPostavu(Postava postava, Zbran prava, Zbran leva) {
        postava.vezmiZbran(Ruka.PRAVA, prava);

        postava.vezmiZbran(Ruka.LEVA, leva);
    }
// to here I have the error " cannot be resolved to a variable"
    public static Postava souboj(Postava PrvniPostava, Postava DruhaPostava) {
            int ubranePrvniZdravi;
            int ubraneDruheZdravi;
            System.out.println("Souboj:\n");
            while(PrvniPostava.getZdravi() > 0 && DruhaPostava.getZdravi() > 0) {
                ubranePrvniZdravi = DruhaPostava.branSe(PrvniPostava.zautoc());
                System.out.println("utoci " + PrvniPostava + " a dava " + ubranePrvniZdravi + " zraneni");
                if(DruhaPostava.getZdravi() > 0) {
                    ubraneDruheZdravi = PrvniPostava.branSe(DruhaPostava.zautoc());
                    System.out.println("utoci " + DruhaPostava + " a dava " + ubraneDruheZdravi + " zraneni");
                }
            }

            if(DruhaPostava.getZdravi() > 0) {
                System.out.print("\n");
                return DruhaPostava;
            }
            System.out.println(" ");
            return PrvniPostava;

        }

        public static void main(String[] args) {

            sc = new Scanner(System.in);

            Postava PrvniPostava = nactiPostavu();
            Zbran zbranPravaPrvniPostava = nactiZbran();
            Zbran zbranLevaPrvniPostava = nactiZbran();
            vyzbrojPostavu(PrvniPostava, zbranPravaPrvniPostava, zbranLevaPrvniPostava);

            Postava DruhaPostava = nactiPostavu();
            Zbran zbranPravaDruhaPostava = nactiZbran();
            Zbran zbranLevaDruhaPostava = nactiZbran();
            vyzbrojPostavu(DruhaPostava, zbranPravaDruhaPostava, zbranLevaDruhaPostava);

            Postava vytez = souboj(PrvniPostava, DruhaPostava);

            System.out.print("Vitez: " + vytez);

        }

    }

【问题讨论】:

  • 还要记得导入枚举

标签: java eclipse variables


【解决方案1】:

如果你的枚举在一个名为 ExampleClass 的类中,那么你必须像这样访问你的枚举:

ExampleClass.Ruka.PRAVA 和 ExampleClass.Ruka.LEVA

你的班级:

public class ExampleClass {
    public enum Ruka {
        LEVA, PRAVA;
    }
}

【讨论】:

    【解决方案2】:

    在同一个类中创建枚举

    enum Ruka {
       LEVA, PRAVA;
            }
    }// End on the main class (in your case Ppa1u04)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多