假设我正在开发一种软件,它必须通过网络平台的API检索大量数据,并且API调用是每日限制的。
软件必须:
当我正在调试时,每次发现错误时我都无法重新运行该软件,或者我每天只能测试2到3次。
假设我要检索所有用于测试的记录(例如,我不能导出下载的内容并在下次运行时导入它并保存我的API请求),我想调试一次软件而不会丢失我在会话期间下载的记录和而不会停止我的调试会话。
我想到的唯一方法是在我软件的主要部分添加断点,并在我必须退后时使用丢帧。
public class MainClass {
public static void main(String args[]){
// ...
ArrayList<HashMap<String, String>> records = MyApiHandler.getRecords();
Comparator.compareRecords(records); // breakpoint here
}
}
public class Comparator {
public static void compareRecords(ArrayList<HashMap<String, String>> records){
// ... after comparation, I have a "Result result"
UploadResults.uploadResults(result); // breakpoint here
}
}
public class UploadResults {
public static void uploadResults(Result result){
// ...
MyApiHandler.updateRecords(result); // breakpoint here
}
}
这种技术允许我在不停止调试的情况下重写代码片段。
例如,如果Comparator
类中存在任何问题,我可以在该类中进行我需要的所有修改,重新编译,删除框架(在此示例中)Comparator.compareRecords()
和“退回”前一课MainClass
,而不会丢失通过API下载的记录,然后进入 Comparator
类的重新编译版本。
这很有效,但结果是有一个非常多的类仅用于调试目的,最后,我必须将所有类加在一起。
有更好的方法吗?
-
编辑:我使用 Intellij IDEA