问题列表 - 第4433页

迭代时允许在Map上进行哪些基本操作?

假设我正在迭代Java中的Map ...我不清楚在迭代过程中我能对Map进行什么操作.我想我在Javadoc中对Iterator接口删除方法的这个警告大多感到困惑:

[...]如果在迭代正在进行中以除调用此方法之外的任何方式修改基础集合,则未指定迭代器的行为.

我确信我可以毫无问题地调用remove方法.但是在迭代Map集合时,我可以:

  1. 使用Map类put方法更改与键关联的值(使用现有键放置)?

  2. 使用Map类put方法添加一个新条目(使用新密钥放置)?

  3. 使用Map类删除方法删除条目?

我的猜测是我可以安全地做#1(放到现有密钥)但不安全做#2或#3.

提前感谢您对此的任何澄清.

java iterator

11
推荐指数
1
解决办法
6367
查看次数

属性模式有哪些优缺点?

Steve Yegge 在他的博客文章中描述了属性模式.

对于使用C#或Java等静态语言的人来说,这种方法有哪些优点和缺点?在什么样的项目中你想要使用属性模式,什么时候你想避免它?

design-patterns

10
推荐指数
1
解决办法
5084
查看次数

如何在EAR之外移动环境细节

我们的项目是使用RAD 7.0在WAS 6.1/hibernate/struts上开发的中型Web应用程序,后者已投入生产.目前,我们已经在hibernate配置文件中的属性文件和数据库架构详细信息中硬编码了生产系统的IP地址.

我们的客户希望我们提出将环境细节保留在EAR旁边的解决方案,以便他们可以在打开EAR时更改环境/数据库详细信息.

任何指针都会非常有用.谢谢.

hibernate web-applications java-ee

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

在Spring中延迟加载DTO字段

我有一个使用Spring的项目,并分解为几十个DAO和相关的DTO.我正在使用JdbcTemplate,但没有其他,因为它正是我很满意的抽象级别.

我目前正在我的DTO上执行延迟加载,在其getter中放置一些相当毛茸茸的代码.

基本样板逻辑是:1.如果field不为null,则返回其值并退出2.联系相应的DAO并获取相关的DTO 3.将它们存储到下一次.

它工作正常,除了我的低DTO与一大堆DAO耦合,并不是那么POJOey.

如果我将逻辑放在DAO中会出现另一个代码气味,因为它将为其DTO和延迟加载处理CRUD,并且据我所知它对象应该只有一个责任.

我希望有一个相对简单的Spring方法,我可以使用它在DAO和DTO之间注入一个Lazy Loader对象来实现这一点,但任何其他解决方案都适用于我.

有任何想法吗?

java spring lazy-loading jdbc

6
推荐指数
1
解决办法
2588
查看次数

正则表达式替换(在Python中) - 一种更简单的方法?

每当我想要替换一段文本时,我总是要做以下事情:

"(?P<start>some_pattern)(?P<replace>foo)(?P<end>end)"
Run Code Online (Sandbox Code Playgroud)

然后将该start组与新数据连接起来replace,然后将该end组连接起来.

有更好的方法吗?

python regex

43
推荐指数
4
解决办法
10万
查看次数

多个javascript/css文件:最佳做法?

我现在有大约7个Javascript文件(感谢各种jQuery插件)和4-5个CSS文件.我很好奇处理这些问题的最佳做法是什么,包括文档中应该加载哪些内容?YSlow告诉我,Javascript文件应该 - 如果可能 - 最后包括在内.身体的尽头?它提到了分隔符似乎是他们是否写内容.我所有的Javascript文件都是函数和jQuery代码(所有这些都在ready()时完成)所以应该没问题.

那么我应该包含一个CSS和一个Javascript文件,并包含其余的?我应该将所有文件连接成一个吗?我应该在文档的最末端放置Javascript我的标签吗?

编辑: FWIW是的,这是PHP.

html javascript css php jquery

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

.NET 3.5/VS 2008上的ASP.NET Web服务的自定义HTTP基本身份验证

我正在重构一个有效的ASP.NET Web应用程序,以使用ASP.NET Web Service公开Web服务接口.根据Web服务身份验证 - 最佳实践,基本身份验证通过https是可行的方法.让我们假设它是,而不是做WS-Security,X509等.

在.NET 3.5/VS 2008上,实现自定义http基本身份验证(非Windows帐户)的最简单方法是什么,例如,只接受用户名为"foo"且密码为"bar"的情况.最终,我想要Thread.CurrentPrincipal设定.

我是自己编写HttpModule还是可以更简单?

asp.net security web-services basic-authentication .net-3.5

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

保持数组在PHP中排序

我有一个PHP脚本,它读取大型CSV并执行某些操作,但前提是"用户名"字段是唯一的.CSV用于多个脚本,因此将输入从CSV更改为仅包含唯一用户名不是一种选择.

最基本的程序流程(我想知道)是这样的:

$allUsernames = array();
while($row = fgetcsv($fp)) {
    $username = $row[0];
    if (in_array($username, $allUsernames)) continue;
    $allUsernames[] = $username;
    // process this row
}
Run Code Online (Sandbox Code Playgroud)

由于这个CSV实际上可能非常大,所以这in_array一点让我思考.在数组中搜索成员时最理想的情况是它是否已经排序,那么如何从头开始构建数组,保持它的顺序?一旦它按顺序排列,是否有更有效的搜索方式而不是使用in_array(),考虑到它可能不知道数组是否已排序?

php arrays sorting

10
推荐指数
2
解决办法
7573
查看次数

如果我在mysql查询上使用LIMIT,结果集是否应该等于限制?

例如select * from table limit 0,5
,最多返回5行,或者
必须找到5行,如果row_count不等于5,则返回空结果集?


如果查询是select * from table limit 5什么?

mysql limit

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

一个班级应该有多少个构造函数?

我目前正在修改一个有9种不同构造函数的类.总的来说,我认为这个类的设计非常糟糕...所以我想知道如果一个类有这么多构造函数的设计是不好的.

出现了一个问题,因为我最近在这个类中添加了两个构造函数,试图重构和重新设计一个类(下面代码中的SomeManager),这样它就是单元可测试的,并且不依赖于它的每个方法都是静态的.但是,因为其他构造函数在类的开头以下方便地隐藏了大约一百行,所以当我添加构造函数时,我没有发现它们.

现在发生的是调用这些其他构造函数的代码依赖于已经实例化的SomeManager类,因为它曾经是静态的......结果是一个空引用异常.

所以我的问题是如何解决这个问题?通过尝试减少构造函数的数量?通过使所有现有构造函数采用ISomeManager参数?

当然一个班级不需要9个构造函数!...哦,最重要的是这个文件中有6000行代码!

这是我正在讨论的构造函数的审查表示:

public MyManager()
    : this(new SomeManager()){} //this one I added

public MyManager(ISomeManager someManager) //this one I added
{
    this.someManager = someManager;
}

public MyManager(int id)
    : this(GetSomeClass(id)) {}

public MyManager(SomeClass someClass)
    : this(someClass, DateTime.Now){}

public MyManager(SomeClass someClass, DateTime someDate)
{
    if (someClass != null)
       myHelper = new MyHelper(someOtherClass, someDate, "some param");
}

public MyManager(SomeOtherClass someOtherClass)
    : this(someOtherClass, DateTime.Now){}

public MyManager(SomeOtherClass someOtherClass, DateTime someDate)
{
    myHelper = new MyHelper(someOtherClass, someDate, "some param");
}

public MyManager(YetAnotherClass yetAnotherClass) …
Run Code Online (Sandbox Code Playgroud)

constructor class-design

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