我的代码中有这个
Thread.currentThread().sleep(x);
Run Code Online (Sandbox Code Playgroud)
Eclipse告诉我使用静态
Thread.sleep(x);
Run Code Online (Sandbox Code Playgroud)
相反,为什么?有什么区别,这两种方法之间的功能有什么不同吗?
我似乎无法找到这个问题的答案,我想知道是否存在.简化示例:
考虑一个字符串"nnnn",其中我想找到"nn"的所有匹配 - 但也是那些彼此重叠的匹配.因此正则表达式将提供以下3个匹配:
我意识到这并不是正则表达式的意思,但是对字符串进行操作并手动解析它似乎是一个非常多的代码,考虑到实际上匹配必须使用模式而不是文字字符串来完成.
在ASP.NET MVC视图中是否有用于转义JavaScript的实用程序函数?我经常需要使用视图中的一些值来初始化一小段JavaScript; 例如,我可能有类似的东西:
<script type="text/javascript">
var page = new Page({ currentUser: "<%= Model.UserName %>" });
page.init();
</script>
Run Code Online (Sandbox Code Playgroud)
我希望有类似的东西:
<script type="text/javascript">
var page = new Page({ currentUser: "<%= Html.JavaScriptEscape(Model.UserName) %>" });
page.init();
</script>
Run Code Online (Sandbox Code Playgroud)
当然,我可以自己编写这个函数.但是因为已经有内置的实用程序形成HTML编码,并且因为ASP.NET MVC的一个卖点是<%%>是默认的渲染模式,因为我想要实现的是很常见的,它让我想知道为什么我找不到已经内置的东西.例如,是否有一种简单而优雅的方法可以在视图中将对象序列化为JSON?
或者我正在做一些针对ASP.NET MVC原则的事情?当我遇到这样的问题时,通常会让我认为我做错了,因为我认为框架设计师花了一些时间思考现实场景.
我应该使用旧的同步Vector集合,具有同步访问的ArrayList还是Collections.synchronizedList或其他一些并发访问的解决方案?
我没有在相关问题或我的搜索中看到我的问题(使你的收藏品线程安全吗?不一样).
最近,我不得不对应用程序的GUI部分进行单元测试(基本上使用API来创建框架,添加对象等).由于这些操作的调用速度比用户快得多,因此它显示了尝试访问尚未创建或已删除的资源的方法的许多问题.
在EDT中发生的一个特殊问题来自于在另一个线程中改变它时在一个链接的视图列表中行走(在其他问题中获得ConcurrentModificationException).不要问我为什么它是一个链表而不是一个简单的数组列表(更少,因为我们通常在0或1视图里面...),所以我在我的问题中采用了更常见的ArrayList(因为它有一个年长的堂兄).
无论如何,我不太熟悉并发问题,我查了一下信息,想知道在旧的(可能是过时的)Vector(它有设计的同步操作),ArrayList和synchronized (myList) { }周围关键部分(添加/删除)之间做出选择/ walk operations)或使用Collections.synchronizedList返回的列表(甚至不确定如何使用后者).
我最终选择了第二个选项,因为另一个设计错误是暴露对象(getViewList()方法...)而不是提供使用它的机制.
但其他方法的优缺点是什么?
[编辑]这里有很多好的建议,很难选择一个.我会选择更详细的,提供链接/食物的想法...... :-)我也喜欢Darron的.
总结一下:
我希望我做对了...... :-)
简单的问题.
我有一个新列表和一个旧列表.在Java中是否有标准的方法/库,允许我比较这两个列表并确定哪些项目已更新/删除或是全新的?例如,我应该最终得到三个列表 - 已删除的项目(旧的但不是新的项目),更新的项目(两者中的项目),新项目(新项目(不是旧项目).
我自己可以写这个,但想知道是否有标准的方法来做到这一点.
列表中的对象实现正确等于.
最后,我有一个问题要问Stack Overflow!:-)
主要目标是Java,但我认为它主要与语言无关:如果你没有本机断言,你可以随时模拟它.
我在一家销售一套用Java编写的软件的公司工作.代码很旧,至少可以追溯到Java 1.3,在某些地方,它显示......这是一个庞大的代码库,大约有两百万行,所以我们不能一次重构它.
最近,我们将最新版本从Java 1.4语法和JVM切换到Java 1.6,保守地使用了一些新功能,例如assert(我们曾经使用过DEBUG.ASSERT宏 - 我知道assert已经在1.4中引入但我们没有使用过它之前),泛型(只有打字的集合),foreach循环,枚举等.
尽管我已经阅读了几篇关于这个主题的文章,但我对assert的使用仍然有点青睐.然而,我看到的一些用法让我感到困惑,伤害了我的常识... ^ _ ^所以我想我应该问一些问题,看看我是否正确想要纠正的东西,或者它是否违背了常规做法.我很啰嗦,所以我大胆地提出问题,因为那些喜欢撇去东西的人.
作为参考,我在SO中搜索断言java并发现了一些有趣的线程,但显然没有完全重复.
new String[0])但并非总是如此.我们必须忍受这一点,至少是为了维护遗留代码.首先,主要问题,今天引发了我的问题:
SubDocument aSubDoc = documents.GetAt( i );
assert( aSubDoc != null );
if ( aSubDoc.GetType() == GIS_DOC )
{
continue;
}
assert( aSubDoc.GetDoc() != null );
ContentsInfo ci = (ContentsInfo) aSubDoc.GetDoc();
Run Code Online (Sandbox Code Playgroud)
(是的,我们使用MS的C/C++样式/代码约定.我甚至喜欢它(来自相同的背景)!所以起诉我们.)
首先,assert()表单来自DEBUG.ASSERT()调用的转换.我不喜欢额外的括号,因为assert是一个语言结构,而不是(不再是,这里)一个函数调用.我也不喜欢return (foo);:-) …
我不是SCM工具的实验用户,当然,尽管我确信它们有用.我在以前的工作中使用了一些模糊的商业工具,在当前的工作中使用了Perforce,并且在我的小个人项目中使用了TortoiseSVN,但我不喜欢在这个地方有很多.svn文件夹,进行搜索,备份等等难.然后我发现了分布式SCM的兴趣,我选择了显然更简单(比git)的Mercurial方式,仍然是为了我个人的个人需求.我正在学习正确使用它,阅读了部分维基并处于优秀PDF书籍的中间.
我经常重复,例如在Mercurial的工作实践中," 不要犹豫在本地使用多棵树.Mercurial使这种快速和轻量级. "和" 为你工作的每个功能,创建一个新的树. ".这些都是有趣而明智的建议,但是它们对集中式SCM的一些习惯有点伤害,我们有一个"神圣"的中央存储库,其中分支机构经过精心策划(并由管理员处理),变更列表必须由(高级)同行检查,一定不要打破构建等等:-)开始在新分支上工作需要相当长的时间......
因此,鉴于上述情况,我有两个问题:
在IDE等环境中,做很多克隆有多实用?如果项目有配置/设置文件,makefile或Ant脚本或shell脚本或其他什么需要路径更新,该怎么办?(是的,可能是一个坏主意...)例如,在Eclipse中,如果我想编译并运行一个克隆,我必须做另一个项目,调整Java构建路径,运行/调试目标,等等.除非Eclipse插件可以轻松完成该任务.我在这里想念一些设施吗?
这个规模怎么样?我已经阅读过Hg可以用于大型代码库,但我很困惑.在我的工作中,我们有一个Java应用程序(好吧,几个围绕一个很常见的内核),大约有两百万行,单独为代码加权大约110MB.在旧的(2004)Windows工作站上进行干净的编译需要大约15分钟来生成50MB的类文件!我没有看到自己克隆整个项目来更改3个文件.那么这里的做法是什么?
我还没有看到我的阅读中提到的这些问题,所以我希望这会成为一个有用的线索.
任何人都可以为Scala推荐一个好的2D动画包吗?我更喜欢已经有一些基本事件处理的东西,更像是JavaFX喜欢processing.org.
基本上,我和我的一个朋友正计划在一个Python项目上工作,该项目将具有GUI界面,并启用文件传输和远程文件列表.我们有大多数我们将要使用的工具,Glade,Python等.
我只是想知道我是否应该使用IDE.
我只听说过Anjuta的好东西,但不相信它的Python支持; 关注评论?
还有什么其他好的IDE我应该检查出来吗?
目前我只是计划在vim中像往常一样编码.