小编Qua*_*Oat的帖子

为什么要使用null值实例化变量

在许多示例代码中,我看到用空值实例化的变量,后来分配了更有意义的值.

我只是想知道为什么人们会这样做.我猜测try-catch块很可能会进入这个,但我也看到实例化的变量将在try块内部为null值.

(我确定这是一个相当语言不可知的问题,但仅供参考我几乎完全用Java编程)

所有见解都表示赞赏!

java programming-languages

12
推荐指数
1
解决办法
3017
查看次数

我的代码是否过于程序化?

最近有人看了我的代码并评论说它过于程序化.需要说明的是,他们看到的代码并不多 - 只是一个部分清楚地概述了应用程序中采取的逻辑步骤.

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方式是什么?

所有评论都非常感谢!

java oop procedural-programming

11
推荐指数
3
解决办法
5756
查看次数

我想测试一个私有方法 - 我的设计有问题吗?

所以我对软件测试非常陌生,我正在考虑为我的一个应用程序添加几个测试.我有一个公共方法addKeywords(),它沿途调用私有方法removeInvalidOperations().这种私有方法调用外部API,并且有大约50行代码.我认为这是一个有点复杂的方法,我想通过调用addKeyword()方法来测试它,而不必这样做.然而,这似乎不可能(至少不是JUnit).

我所看到的信息表明,测试私有方法的愿望可能是代码味道.有些人认为这可能表明这应该被重构为一个单独的类并公之于众.此外,还有一些建议,如果您确实需要,那么您可以对生产代码进行编辑,例如更改私有方法的可见性.

我真的不明白为什么我当前的代码设计有问题,但也不喜欢编辑我的生产代码以满足我的测试需求的想法.

正如我所说 - 我对测试很新,所以任何帮助都非常感激.此外,如果有任何进一步的信息,我可以告诉我,以帮助解答.

java testing integration-testing unit-testing

11
推荐指数
2
解决办法
5247
查看次数

例外,以及重置连接时如何最好重试?

我有一些代码连接到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)

java connection exception-handling

8
推荐指数
1
解决办法
7230
查看次数

java - 如何在两个列表之间找到匹配的对象?

给定两个列表,每个列表保持相同的对象类型,我想根据一些属性值在两个匹配的列表之间找到对象.

例如,来自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听起来很适合找到匹配,但如果我是对的,它实际上不允许我访问这些匹配.

我该怎么办?

java algorithm list data-structures

8
推荐指数
1
解决办法
8557
查看次数

Java数据结构问题

我想知道在以下场景中使用的最佳数据结构是什么:

我有2个对象类型A和B.

A可能包含许多B的实例

A.name是唯一的.B.name在它的A实例中是唯一的(尽管不是全局唯一的)

我希望能够提供诸如getA(String aName)之类的访问器方法返回一个; getB(String aName,bName)返回b;

非常感谢所有帮助,

克里斯

java data-structures

5
推荐指数
2
解决办法
512
查看次数

SQL Server - 如何确保缓存查询结果?

我有一个应用程序,其登录后的第一页为用户提供了大量数据。对数据库的查询需要很长时间 - 比如说 10 秒。数据库在 SQL Server 2008 中,查询运行被构造为 Java 中的准备语句。需要显示的数据一般每天只更改一次。所以 - 如果我可以缓存这个结果,并更快地显示,那将是理想的。

但是,我不太确定我需要做什么来减少这 10 秒的等待 - 每次加载页面时都会发生相同的延迟。我需要做些什么来确保 SQL Server 将结果缓存到查询中?一分钟的第二次加载似乎并没有更快 - 我应该从哪里开始探索?

非常感谢所有帮助!

java sql sql-server caching prepared-statement

5
推荐指数
1
解决办法
1338
查看次数

Java - 如何根据列表元素的属性分隔列表

我有一个我想要执行操作的对象列表.但是我首先需要将列表分成单独的列表,以便具有相同parentID的所有项目都在同一列表中,然后分别对每个列表执行操作(原因是操作将对象的parentID作为参数).

根据此要求,基于其元素的给定属性分隔列表的最佳方法是什么?将在原始列表中传递的最大对象数<10,000,通常<1,000.

非常感谢所有帮助!

java data-structures

3
推荐指数
1
解决办法
671
查看次数

SQL - 返回所有行,但非唯一行合并为一个(算术执行)?

我有一个表,其中列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)

我可以使用什么查询来返回所需的结果集?

非常感谢所有帮助!

sql

2
推荐指数
1
解决办法
107
查看次数