Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Eclipse Luna中的重构->移动中缺少类_Java_Eclipse_Refactoring - Fatal编程技术网

Java Eclipse Luna中的重构->移动中缺少类

Java Eclipse Luna中的重构->移动中缺少类,java,eclipse,refactoring,Java,Eclipse,Refactoring,我正在尝试一些重构设计模式,对于这个特定的模式,我需要将我的一个方法移动到一个新类来处理复杂的条件。下面是我尝试移动的方法的类 public class Grade { public static double A_GRADE = 0.9; public static double B_GRADE = 0.8; public static double C_GRADE = 0.7; public static double D_GRADE = 0.6;

我正在尝试一些重构设计模式,对于这个特定的模式,我需要将我的一个方法移动到一个新类来处理复杂的条件。下面是我尝试移动的方法的类

public class Grade
{
    public static double A_GRADE = 0.9;
    public static double B_GRADE = 0.8;
    public static double C_GRADE = 0.7;
    public static double D_GRADE = 0.6;

    private double grade;

    public Grade(double grade)
    {
        this.grade = grade;
    }

    double getGrade() { return grade; }
    void setGrade (double newGrade) { this.grade = newGrade; }

    public String determineGradeLetter()
    {
        if (grade <= 1.0 && grade >= 0)
        {
            if (grade >= A_GRADE) { return "A"; }
            else if (grade >= B_GRADE) { return "B"; }
            else if (grade >= C_GRADE) { return "C"; }
            else if (grade >= D_GRADE) { return "D"; }
            else { return "F"; }
        }
        else { System.out.println("Invalid Grade") }
    }
}
我突出显示determineGradeLetter方法,然后右键单击->重构->移动。当弹出菜单打开时,名为GradeStrategy的类不会列出

你认为可能出了什么问题?我正在运行Eclipse Luna


此外,我知道我可能只需将该方法复制并粘贴到GradeStrategy类中,并在DetermingGradeLetter参数中添加一个Grade对象,但我想充分利用Eclipse的重构功能。

重构的结果仍应在编译中。因此eclipse需要能够确定将方法移动到的可能目标

在您的情况下,没有可以将其移动到的升级策略。Eclipse不知道如何处理现有的调用者

例如,如果您有一个GradeStrategy作为方法的参数,或者作为Grade上的一个字段,那么它可以被移动,因为有可能的候选者