如何使Java ArrayList的深层副本

可能重复: 如何克隆ArrayList并克隆其内容? 试图制作一个ArrayList的副本。 底层对象很简单,包含string,整数,BigDecimals,Dates和DateTime对象。 我如何确保对新的ArrayList进行的修改不会反映在旧的ArrayList中? Person morts = new Person("whateva"); List<Person> oldList = new ArrayList<Person>(); oldList.add(morts); oldList.get(0).setName("Mortimer"); List<Person> newList = new ArrayList<Person>(); newList.addAll(oldList); newList.get(0).setName("Rupert"); System.out.println("oldName : " + oldList.get(0).getName()); System.out.println("newName : " + newList.get(0).getName()); 干杯,P

构build器模式和大量的强制性参数

迄今为止,我使用了以下构build器模式的实现(与此处描述的实现相反): public class Widget { public static class Builder { public Builder(String name, double price) { … } public Widget build() { … } public Builder manufacturer(String value) { … } public Builder serialNumber(String value) { … } public Builder model(String value) { … } } private Widget(Builder builder) { … } } 这适用于我遇到的大多数情况,我需要build立一个复杂的对象与各种必需/强制性和可选参数。 然而,最近我一直在努力去理解,当所有的参数都是强制性的(或者至less绝大多数参数是强制性的)时,这种模式是有什么好处的。 […]

Heroku – 在Django应用程序中处理静态文件

我有一个项目(myapp)在heroku,但我不能让静态文件正常工作。 我正在关注这篇博文 。 我的Procfile如下所示: web: python myapp/manage.py collectstatic –noinput; bin/gunicorn_django –workers=4 –bind=0.0.0.0:$PORT myapp/settings.py settings.py : … STATIC_ROOT = os.path.join(PROJECT_PATH, 'staticfiles') STATIC_URL = '/static/' ADMIN_MEDIA_PREFIX = '/static/admin/' STATICFILES_DIRS = ( # I have the static folder inside my app and not inside the project os.path.join(PROJECT_PATH, 'cesar/static'), ) … 当使用heroku restart这是heroku logs显示的内容: … Copying … 114 static […]

为什么string文字l值而所有其他文字是r值?

C ++ 03 5.1主expression式 §2: 一个文字是一个主要的expression。 它的types取决于它的forms(2.13)。 一个string文字是一个左值; 所有其他文字是rvalues。 这背后的理由是什么? 据我所知,string文字是对象,而所有其他文字不是。而且一个l值总是指一个对象。 但问题是为什么string文字对象,而所有其他文字不是? 这个理由在我看来更像是鸡蛋或鸡肉的问题。 我理解这个答案可能与硬件架构有关,而不是C / C ++作为编程语言,不过我希望听到同样的答案。 注意:我将这个问题标记为c&c ++,因为C99标准也有类似的引用,特别是§6.5.1.4

是否有被认为是“安全”的GHC扩展列表?

有时候,我想要写的一段代码在没有至less一种语言扩展的情况下是不合法的。 当试图在研究论文中实现想法时尤其如此,在撰写论文的时候,研究论文倾向于使用GHC的超级扩展版本,而没有明确指出哪些扩展实际需要。 结果是,我经常在我的.hs文件的最上面得到类似这样的东西: {-# LANGUAGE TypeFamilies , MultiParamTypeClasses , FunctionalDependencies , FlexibleContexts , FlexibleInstances , UndecidableInstances , OverlappingInstances #-} 我不介意,但我常常觉得好像是为了安抚GHC的伟大的上帝而盲目牺牲。 它抱怨说,没有语言扩展X的某段代码是无效的,所以我添加了一个X的编译指示。然后它要求我启用Y,所以我为Y添加一个编译指示。到这个时候,我已经可以启用三四种我不太了解的语言扩展,我不知道哪些是“安全”的。 解释我的意思是“安全”: 我明白, UndecidableInstances是安全的,因为虽然它可能会导致编译器不终止,只要代码编译它不会有意想不到的副作用。 另一方面, OverlappingInstances显然是不安全的,因为它使我很容易意外地编写给出运行时错误的代码。 所以我的问题是: 是否有GHCextension列表被认为是“安全的”,是“不安全的”?

json.dump抛出“TypeError:{…}是不是JSON序列化”看似有效的对象?

背景 :我正在写一个应该pipe理我的音乐文件的Python程序。 它抓取目录,并将文件和它们的元数据(通过mutagen)编码成JSON格式,作为一个简单的“数据库”。 我有目录search很好,但是当我尝试保存数据库,或编码为JSON,它会引发“TypeError:{…}不是JSON可序列化”(…是一些字典和键值,下面更多) 问题 :程序按照以下格式构build一个大的字典对象: { "<song id>":{ "artist":"<song artist>", "album":"<song album>", "title":"<song title>"}, … } 每一首歌曲文件都通过这种格式进行索引。 当我尝试将数据库转储到一个文件,我得到这个: Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> sit() File "D:\workbench\ideas\musicmanager\v0\spider.py", line 116, in sit json.dump(js.db,f,True) File "C:\Python27\lib\json\__init__.py", line 181, in dump for chunk in iterable: File "C:\Python27\lib\json\encoder.py", line 428, in _iterencode for […]

在D3中添加图表图例

我无法添加图表图例到我的d3js图表。 这是我目前的做法: var legend = svg.append("g") .attr("class", "legend") .attr("x", w – 65) .attr("y", 25) .attr("height", 100) .attr("width", 100); legend.append("rect") .attr("x", w – 65) .attr("y", 25) .attr("width", 10) .attr("height", 10) .style("fill", function(d) { return color_hash[dataset.indexOf(d)][1] }); legend.append("text") .attr("x", w – 65) .attr("y", 25) .text(function(d) { return color_hash[dataset.indexOf(d)][0] + ": " + d; }); 然后,我试图设置.legend类的样式: .legend { […]

如何模拟使用jQuery在input字段中input?

我想要的是模拟使用javascriptinput<input>字段。 我有以下代码: var press = jQuery.Event("keydown"); press.ctrlKey = false; press.which = 65; $("#test").trigger(press); 但是当我加载页面时, #testinput字段没有input字符, #test '的键码代表'A',但没有'A'input。 基本上我想要的是使用Greasemonkey自动input网站。 请给我一些想法或一些图书馆,我可以用它来做到这一点。 非常感谢!

Git – 如何find特定分支的第一次提交

在以下示例树中: ABCDE (master branch) \ FGH (xxx branch) 我正在寻找F – xxx分支中的第一个提交。 我认为这是可能的: git log xxx –not master 最后列出的提交应该是F.这是正确的解决scheme还是有一些缺点呢? 我知道在stackoverflow上有类似的问题,但没有人提出这样的解决scheme,我不知道如果我做对了。

IntelliJ能显示一个像Eclipse一样的可search的maven依赖项吗?

我开始使用IntelliJ IDEA 13旗舰版,并想知道它是否有像Eclipse一样的项目的Maven依赖关系的可search表格视图。 例如,在Eclipse中,我可以检查项目的maven依赖关系,方法是转到它的pom,然后单击“Dependencies Hierarchy”(依赖关系层次结构)选项卡。 从那里,我可以search特定的依赖关系的存在,并有能力查看所述依赖关系的POM。 到目前为止,在IntelliJ中发现的所有依赖关系都是图表视图,当您拥有很多依赖关系时,依赖关系可能会变得非常混乱,而且实际上并不允许我查看POM或search。 有任何想法吗?