从另一个类调用方法会在该语句处停止

时间:2015-06-25 22:37:19

标签: java methods call

我真的不明白我的程序发生了什么。我从[另一个类]调用一个方法,不知何故[调用方法的类]在调用的地方停止工作,并且不执行程序的其余部分。

也没有出现任何错误,它只是没有运行其余的(使用打印语句检查)

这是我的代码:

调用方法的类

Banana ban = new Banana();
String[] listOfBananas = ban.getBananas(); //Stops at this statement
//Below is a check that never gets executed as with the rest of the program
System.out.println("I didnt get to this statement");

//Do other stuff with the array...

具有

方法的类
public class Banana {
    public static String[] giveOtherClassList;

    public Banana(){
    }

    public static void main(String[] args) {
        StringBuilder a = new StringBuilder();
        a.append("text text1 text2 text3");
        giveOtherClassList = a.toString().split(" "); //Split will create an array
    }

    public String[] getBananas() {
        //I know this method works because I ran this program with
        //giveOtherClassList[3] and it returned the correct value
        return giveOtherClassList;
    }
}

1 个答案:

答案 0 :(得分:0)

鉴于您提供的代码,我非常确定main中的Banana方法被执行而不是您实际想要执行的代码。只需删除main中的Banana方法,然后重新运行测试即可。确保:添加System.out.println("Start");作为main中的第一行。

这是一个仅用于文档目的的MWE:

public class Main implements Foo {
    public static void main(String... args) {
        Banana ban = new Banana();
        String[] listOfBananas = ban.getBananas();
        System.out.println("I didnt get to this statement");
    }
}

class Banana {
    public static String[] giveOtherClassList;

    public Banana() {
    }

    public String[] getBananas() {
        return giveOtherClassList;
    }
}

此程序生成输出I didnt get to this statement,显然 - 不是真的,因此程序可以正常工作:)