java - Android 因 java.lang.stackoverflowError 崩溃

标签 java android stack-overflow

我正在实现一个程序,该程序应该从摄氏度计算到华氏度等。但是,如果我启动该程序,当我单击“计算”按钮时它就会崩溃。在 Java 中,当方法在第 72 行启动时,出现以下错误

enter image description here

627  627 com.example.ubersatzer AndroidRuntime FatalException: main
627  627 com.example.ubersatzer AndroidRuntime java.lang.StackOverflowError
627  627 com.example.ubersatzer AndroidRuntime at.come.example.ubersatzer.InputFragment.isConvertFromCelsiusToFahrenheit (InputFragement.java:72)

这里是 Activity 类的代码,相关方法:

    public void onClick(View view) {
    switch (view.getId()) {

    case R.id.buttonConvert:
        convert(); 
        break;
    }
}


private void convert() {
            if (inputFragment.isConvertFromCelsiusToFahreinheit()) {
        doConvertFromCelsiusToFahrenheit();
    }
}

private void doConvertFromCelsiusToFahrenheit(){
    String celsiusStringValue = inputFragment.getCelsiusValue();
    double celsiusValue = Double.parseDouble(celsiusStringValue);
    double fahrenheitValue = ((celsiusValue * 9) / 5 ) + 32;
    outputFragment.setOutput(String.valueOf(fahrenheitValue) + "F");
}

这里是InputFragment.java类的isConvertFromCelsiusToFahrenheit()的代码

    public boolean isConvertFromFahrenheitToCelsius() {
                if (inputFahrenheit.getText() != null
                && inputFahrenheit.getText().toString().trim().length() > 0) {
            return true;
        }

        return false;
    }


    public boolean isConvertFromCelsiusToFahreinheit(){
        return !isConvertFromCelsiusToFahreinheit();
    }

最佳答案

这就是你的问题

   public boolean isConvertFromCelsiusToFahreinheit(){
        return !isConvertFromCelsiusToFahreinheit();
    }

方法isConvertFromCelsiusToFahreinheit正在递归调用自身

关于java - Android 因 java.lang.stackoverflowError 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18308815/

相关文章:

六边形架构的 Java 代码示例?

Java SWT 和无效的线程访问

android - ProgressDialog 与 AsyncTask - 不会显示

.net - WPF:为什么这会导致堆栈溢出异常?

java - 如何重用方法?

JavaFX:用于十六进制编码内容的自定义 TextArea

android - 应用强制停止后手动重新启用辅助功能服务不会重新启动

java - 通过触摸事件调整图标大小

java - 从 codility 计算 div。使用递归的程序中的 StackOverflowError

c++ - 堆栈溢出会导致段错误以外的其他原因吗?