Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.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调试,更改BigDecimal上的变量值_Java_Eclipse_Debugging_Bigdecimal - Fatal编程技术网

Java Eclipse调试,更改BigDecimal上的变量值

Java Eclipse调试,更改BigDecimal上的变量值,java,eclipse,debugging,bigdecimal,Java,Eclipse,Debugging,Bigdecimal,在Eclipse的变量部分调试时,如何提供BigDecimal值 例如: 我已经在if语句上设置了断点,现在我想将bd值更改为20,以便在调试时执行if块。我试过很多种方法,但是我犯了一个错误 我尝试了新的BigDecimal(21),但出现了一个错误。 确保变量“bd”未标记为final 转到变量选项卡,右键单击“bd” “更改值…” 键入newjava.math.BigDecimal(21),“OK” 如果在调试过程中遇到调试视图的任何限制,只需在已经打开的Java编辑器中编写一行代码,如

在Eclipse的变量部分调试时,如何提供
BigDecimal

例如:

我已经在
if
语句上设置了断点,现在我想将
bd
值更改为
20
,以便在调试时执行
if
块。我试过很多种方法,但是我犯了一个错误

我尝试了新的BigDecimal(21),但出现了一个错误。

  • 确保变量“bd”未标记为final
  • 转到变量选项卡,右键单击“bd”
  • “更改值…”
  • 键入newjava.math.BigDecimal(21),“OK”

如果在调试过程中遇到调试视图的任何限制,只需在已经打开的Java编辑器中编写一行代码,如

bd = new BigDecimal(42);
选择新编写的代码,然后从上下文菜单中选择“”。然后点击CtrlZ删除该代码并继续调试。任何时候都不要保存编辑器


这样,您可以在调试会话期间执行任意修复。

您需要使用类的完整限定名:

new java.math.BigDecimal()

我在调试时修改BigDecimal变量的值时也遇到了一些问题,但我发现了一个可能对您有所帮助的小技巧:在Java类中复制您正在调试的一些代码以修改变量,例如
myVar=myVar.add(new BigDecimal(1))
(在本例中,
myVar
是一个BigDecimal变量,我正在添加它1)并计算该表达式(Ctrl+Shift+I),它将分配新值。当然,您应该保存原始值并在继续执行之前再次分配,这只是一种变通方法。
希望它有所帮助,请注意。

在“更改对象值”中eclipseenter对话框

java.math.BigInteger.valueOf(20)
不能使用BigInteger(您的INT)创建BigInteger,因为此构造函数不是公共的。 转到Eclipse中的Variables视图,打开“ChangeObjectValue”(右键单击要更改的BigInteger类型的变量)。

我不确定您是否能做到这一点,但如果有任何方法可以做到这一点,那就太好了!“BigDecimal无法解析为类型”。这是我收到的错误消息。然后,您的原始代码不包含任何BigDecimal变量,或者您正在尝试调试一些甚至未编译和运行的代码。请在尝试运行项目之前修复项目中的错误。我尝试在“更改变量”窗口中执行此操作,因此我收到了错误。是的,如果我编写一行代码并选择该行,则行并右键单击-execute将为BigDecimal类型的变量设置新值。继续调试。如果处于循环中,则每次都需要执行代码行,否则将不会设置该值。谢谢!!我在发布此问题之前尝试了此操作,但出现错误。“BigDecimal无法解析为类型”。
java.math.BigInteger.valueOf(20)