0

我正在学习 Java,发现自己在寻求帮助时会发送方法,但我的问题是我有很多方法,并且每种方法都会修改数据。当只有一个区域相关时,我经常不得不发送大文件(这也使我的 SO 问题过长)。

但是对于我所做的一些事情,我无法将正确的数据格式输出为稍后可以输入的字符串。例如,如果我将数据添加到点列表(像这样,(new Point(0, 0));),那么当我输出结果时,我会得到这样的结果(带有示例数据):

[java.awt.Point[x=970,y=10], java.awt.Point[x=65,y=10], java.awt.Point[x=729,y=10]

当我将它分配给一个变量并将它发送到我想要测试/显示的方法时,我得到了错误。我基本上有两个目标:

  1. 如果我需要一个方法的帮助(这是一个更大的类的一部分),我希望能够向帮助我的人发送最少的代码(理想情况下只是方法本身和输入......我就是现在无法准确捕获)。
  2. 当我测试我的代码时,我想要一种方法来隔离一个方法,这样当我所能做的就是改进一个方法时,我就不必运行一个大文件。

我很确定我不是第一个遇到这个问题的人,我该如何解决这个问题?

更新:这是一个例子,

double[] data = new double[] {.05, .02, -.03, .04, .01}; 
System.out.println(data); //output is: [D@13fcf0ce 

如果我为此创建一个新变量并将其发送到一个方法,我会得到错误。我一堂课有 30 种方法。我想请一位朋友帮我做一个。我要避免发送与此人无关的 29 种方法。所以我需要一种捕获数据的方法,但打印输出似乎无法以我可以发送到方法的方式捕获它。

4

2 回答 2

1

您可以使用调试器并单步执行您的代码。您可以“观察”变量,以便获得它们的实际值,而不是它们的toString表示。调试器通常是所有主要 IDE 的一部分,例如 Eclipse、Netbeans 和 IntelliJ。

至于您关于隔离和测试的问题,这更像是一个设计问题。理想情况下,您的方法应该是自包含的,从而减少耦合。你可以做的是学会把你的问题分解成更小的块,直到它不能被进一步分解。一旦你这样做了,你就开始构建分别解决问题的每个部分的方法。

一旦你有了你的方法,你就可以自己测试它(从而减少可能出错的事情的数量,而不是一次测试大量的代码)。如果您满意,您可以将该方法与您的代码集成并再次测试。如果出现问题,您将知道您的最后一个模块是问题,因为它破坏了您的系统。您可以在此处获得有关此的更多信息。

于 2012-04-06T15:56:08.277 回答
1

Java 以人类可读的方式输出变量(尽管它取决于对象的toString方法)。的输出toString(不出所料)是 a String。除非您有一种解析机制将字符串转回原始对象,否则它是一种单向操作。

但是,应该没有必要将其变回原始对象。如果您尝试隔离函数和样本数据,最简单的做法是将其封装在测试和一些数据中——有许多不同的方法可以做到这一点并将其传达给其他人。

但是,我仍然不清楚您的用例。如果这是一个 SO 问题,您需要做的就是显示有问题的代码,提供显示问题的最少量数据,然后您就完成了。这可以在一个独立的示例中完成,您可以在代码中简单地创建数据,作为单元测试,或者通过显示您已经完成的字符串输出。

如果您试图将问题传达给技术支持层,那么最好的机制完全取决于他们能够处理什么——他们会告诉您如果您做得不对,相信我。

于 2012-04-06T16:30:43.867 回答