2015-12-02 35 views
-4

嗨,大家可以纠正我的错误吗?
错误是在第二行我试图把它转换为整数返回声明上的错误

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; 
     } 
    } 
} 
+0

请格式化您的代码并提供更多上下文。 – Arc676

+0

您需要为我们提供比此更多的代码。你的'convert'方法声明在哪里? – Redtama

+0

您可以提供带有示例数据的可运行示例代码。 – Kartic

回答

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的方法将不会有返回任何东西的可行方法。你必须将return语句从if语句中取出,并且可能将其放在最后,或者给if语句块一个else语句块,该语句块也包含返回语句。

+0

public void convert(Integer number1){ \t \t Integer [] tab = new Integer [4]; \t int i = tab.length-1; \t \t do {\t \t \t \t tab [i] = number1%10; \t \t \t number1 = number1/10; \t \t \t i--; \t \t} while(number1!= 0); \t \t对(INT克= 0;克<= tab.length-1; G ++){ \t \t \t如果(!选项卡并[g] = NULL){ 是System.out.print(的String.format(“% 4s“,Integer.toBinaryString(tab [g]))。替换('','0')); \t \t} \t \t} \t} – nounou

+1

所以你的问题是气垫船充满鳗鱼的说,它是因为你使用一个转换方法无效。改变它的类型,这将解决您的问题 – dave

+0

是的,我认为这是我的错误,但是当我把回报,因为我用return语句,如果它显示我一个错误 – nounou