返回声明中的错误

时间:2015-12-02 13:14:12

标签: java

大家好,有人可以纠正我的错误吗? 错误是在第二行我尝试放置一个转换整数

的void方法
Integer g=Integer.valueOf(this.jTextField1.getText()).intValue();
Integer g=Integer.valueOf(this.jTextField1.getText()).intValue();
this.jTextField3.setText(String.valueOf(this.convert(g)));

大家好,有人可以纠正我的错误吗? 返回不起作用

public String convert(Integer number1) {
    Integer [] tab = new Integer[4]; 

    int i=tab.length-1;
    do {
        tab[i]=number1%10; 
        number1=number1/10;
        i--;
    } while(number1!=0);
    for(int g=0;g<=tab.length-1;g++) {
        if(tab[g]!=null){
            String f= String.format("%4s",Integer.toBinaryString(tab[g])).replace(' ', '0');
            return f;
        }   
    }
}

1 个答案:

答案 0 :(得分:2)

我的猜测,您的转换方法是打印出结果但不返回结果:

public void convert(int number) {
    // do something to the number, creating theConvertedNumber
    System.out.println(theConvertedNumber);
}

这对您来说毫无价值,因为您希望将转换后的数字放入JTextField,如果该方法什么都不返回,则无法执行此操作。而是让它返回转换后的数字:

public int convert(int number) {
    // do something to the number, creating theConvertedNumber
    return theConvertedNumber;
}

关于您的最新代码,您的return语句已隐藏在if块中,编译器会看到这一点。那么,如果if条件为假,会发生什么?应该返回String的方法将没有可行的方式返回任何东西。你必须从if中取出return语句,并将它放在最后,或者给if块一个也有return语句的else块。