在许多示例代码中,我看到用空值实例化的变量,后来分配了更有意义的值.
我只是想知道为什么人们会这样做.我猜测try-catch块很可能会进入这个,但我也看到实例化的变量将在try块内部为null值.
(我确定这是一个相当语言不可知的问题,但仅供参考我几乎完全用Java编程)
所有见解都表示赞赏!
最近有人看了我的代码并评论说它过于程序化.需要说明的是,他们看到的代码并不多 - 只是一个部分清楚地概述了应用程序中采取的逻辑步骤.
if(downloadFeeds(ftpServer, ftpUsername, ftpPassword, getFtpPathToLocalPathMap())) {
loadDataSources();
initEngine();
loadLiveData();
processX();
copyIds();
addX();
processY();
copyIds();
addY();
pauseY();
resumeY();
setParameters();
}
Run Code Online (Sandbox Code Playgroud)
然后,这些不同的方法创建了一大堆不同的对象,并根据需要在这些对象上调用各种方法.
我的问题是 - 是一段明确驱动你的应用程序的代码,例如,指示程序编程,如果是这样,那么实现相同结果的更多OO方式是什么?
所有评论都非常感谢!
所以我对软件测试非常陌生,我正在考虑为我的一个应用程序添加几个测试.我有一个公共方法addKeywords(),它沿途调用私有方法removeInvalidOperations().这种私有方法调用外部API,并且有大约50行代码.我认为这是一个有点复杂的方法,我想通过调用addKeyword()方法来测试它,而不必这样做.然而,这似乎不可能(至少不是JUnit).
我所看到的信息表明,测试私有方法的愿望可能是代码味道.有些人认为这可能表明这应该被重构为一个单独的类并公之于众.此外,还有一些建议,如果您确实需要,那么您可以对生产代码进行编辑,例如更改私有方法的可见性.
我真的不明白为什么我当前的代码设计有问题,但也不喜欢编辑我的生产代码以满足我的测试需求的想法.
正如我所说 - 我对测试很新,所以任何帮助都非常感激.此外,如果有任何进一步的信息,我可以告诉我,以帮助解答.
我有一些代码连接到URL以下载文件,然后对其执行一些处理.但是,有时我收到错误java.net.SocketException: Connection reset.
我想在收到此错误时重试下载该文件,在放弃之前最多说3次.我想知道什么是最好的结构方式.
以下是否正常.将try-catch块放在while循环内是否可以接受,还是有更好的方法?
非常感谢所有帮助!
while(!connected && retries > 0) {
retries--;
URL downloadUrl;
URLConnection conn;
try {
downloadUrl = new URL(url);
conn = downloadUrl.openConnection();
conn.connect();
connected = true;
// Perform processing on downloaded file here
} catch (IOException e) {
Logger.batchLog(e);
}
}
Run Code Online (Sandbox Code Playgroud) 给定两个列表,每个列表保持相同的对象类型,我想根据一些属性值在两个匹配的列表之间找到对象.
例如,来自List1的对象L1Obj匹配来自List2,L2Obj的对象,如果L1Obj.a == L2Obj.a AND L1Obj.b == L2Obj.c AND L1Obj.c == L2Obj.c
这些属性不是该类的唯一属性,而是唯一标识列表中对象所需的属性.
我的问题是 - 实现这一目标的最佳方法是什么?
一种方法是基于列表构造HashMaps,使用a + b + c的concataned String值作为索引对象的键.这样我就可以遍历第一个列表,并尝试使用相同的密钥在第二个列表中查找对象.
这听起来怎么样?有没有更好的方法来实现这一目标?
非常感谢所有帮助!
更新:
好的,实际上我还需要更多.找到匹配后,我想用L2Obj的属性覆盖属性L1Obj.x,L1Obj.y,L1Obj.z.HashSet听起来很适合找到匹配,但如果我是对的,它实际上不允许我访问这些匹配.
我该怎么办?
我想知道在以下场景中使用的最佳数据结构是什么:
我有2个对象类型A和B.
A可能包含许多B的实例
A.name是唯一的.B.name在它的A实例中是唯一的(尽管不是全局唯一的)
我希望能够提供诸如getA(String aName)之类的访问器方法返回一个; getB(String aName,bName)返回b;
非常感谢所有帮助,
克里斯
我有一个应用程序,其登录后的第一页为用户提供了大量数据。对数据库的查询需要很长时间 - 比如说 10 秒。数据库在 SQL Server 2008 中,查询运行被构造为 Java 中的准备语句。需要显示的数据一般每天只更改一次。所以 - 如果我可以缓存这个结果,并更快地显示,那将是理想的。
但是,我不太确定我需要做什么来减少这 10 秒的等待 - 每次加载页面时都会发生相同的延迟。我需要做些什么来确保 SQL Server 将结果缓存到查询中?一分钟的第二次加载似乎并没有更快 - 我应该从哪里开始探索?
非常感谢所有帮助!
我有一个我想要执行操作的对象列表.但是我首先需要将列表分成单独的列表,以便具有相同parentID的所有项目都在同一列表中,然后分别对每个列表执行操作(原因是操作将对象的parentID作为参数).
根据此要求,基于其元素的给定属性分隔列表的最佳方法是什么?将在原始列表中传递的最大对象数<10,000,通常<1,000.
非常感谢所有帮助!
我有一个表,其中列B,C和D可以被视为标识符,列E - I是值.根据标识符将存在一些非唯一的行,即B,C和D的值与某些其他行的值匹配(可能多于一行匹配).
我想要一个返回所有行的查询,除了那些非唯一的行.在这些情况下,我希望只返回一行,它们的值相加,但有一个例外,列E.这应该是关于列F的加权平均值,即对于每个匹配的行,返回的值应该是E的总和*F/F的总和
例如
E, F
7, 1
9, 4
E = (7*1 + 9*4)/(1+4) = 8.6
Run Code Online (Sandbox Code Playgroud)
我可以使用什么查询来返回所需的结果集?
非常感谢所有帮助!
java ×8
sql ×2
algorithm ×1
caching ×1
connection ×1
list ×1
oop ×1
sql-server ×1
testing ×1
unit-testing ×1