在Java中有SortedSet和SortedMap接口.两者都属于Java的标准集合框架,并提供了一种访问元素的排序方式.
但是,根据我的理解SortedList,Java中没有.您可以使用java.util.Collections.sort()对列表进行排序.
知道为什么它的设计是这样的吗?
我遇到了一些具有以下内容的代码:
String foo = getvalue("foo");
if (StringUtils.isBlank(foo))
doStuff();
else
doOtherStuff();
Run Code Online (Sandbox Code Playgroud)
这看起来在功能上等同于以下内容:
String foo = getvalue("foo");
if (foo.isEmpty())
doStuff();
else
doOtherStuff();
Run Code Online (Sandbox Code Playgroud)
两者(org.apache.commons.lang3.StringUtils.isBlank和java.lang.String.isEmpty)之间有区别吗?
我知道这可能更适合Ask Different,但是当我尝试在那里添加标签时,没有vim标签,只有macvim.所以我想我可能会在这里找到更好的观众.
在终端中,我执行以下操作
$ vim --version
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Jan 31 2010 13:33:49)
Run Code Online (Sandbox Code Playgroud)
当我浏览http://www.vim.org时,我看到了一则新闻
Vim 7.3发布了!
如何更新内置的vim?我非常希望干净利落(即没有重复的安装,或任何额外的下载,没有macports等)
我考虑使用Mercurial(因为我已经将它用于其他事情),按照这里的说明.
$ hg clone https://vim.googlecode.com.hg/ vim
$ cd vim/src
$ make
Run Code Online (Sandbox Code Playgroud)
但我认为这将使重复安装.尽管如上所述我的"干净"要求,"不干净"的解决方案也是受欢迎的,因为也许真的没有别的办法.
有没有办法用IE 7或8获取事件的当前目标?
使用其他浏览器(firefox,opera,chrome等)我们可以使用
event.currentTarget或者也可以使用this关键字来引用处理事件的对象.
但是在Internet Explorer中我们没有currentTarget属性而且this引用了window对象!
那我该怎么办呢?
在Visual Studio 2010中,我想同时调试在IIS上运行的两个Web应用程序.调试第一个应用程序时,没问题.但是当开始调试第二个应用程序并且第一个程序仍处于调试模式时,Visual Studio会提示:
无法在Web服务器上启动调试.调试器已经附加
我怎么解决这个问题?
有没有办法防止Java安装例程(例如jdk-7u1-windows-i586.exe)将java.exe复制到C:\Windows\system32目录中?
我必须在客户端的笔记本电脑上安装我的软件,我不想打破已经安装在机器上的其他Java应用程序.换句话说,我想安装一个仅由我的软件使用的私有JRE.
到现在为止,我已将已安装的JRE从我的计算机复制到客户端的计算机上.
IntelliJ IDEA中是否有一种方法可以在由Lombok生成的setter方法中设置断点?
这在某些调试方案中非常有用,例如,查看何时从像Hibernate这样的框架调用setter.
实际上,生成的setter方法显示在IntelliJ IDEA(正在使用的Lombok插件)的结构视图中.但是我没有找到通过上下文菜单等设置断点的方法.
可能导致这样的错误的原因是什么?File.java的Javadoc表示,如果以负值传递,它将抛出此异常.所以问题是,为什么碧玉传递负值.我找了jasper的来源,但是我找不到与我正在运行的完全相符的那些,行号不完全匹配.根据javadoc,我已经从File.lastModified设置了最后修改时间,该时间永远不会返回负值.
SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.IllegalArgumentException: Negative time
at java.io.File.setLastModified(File.java:1258)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:376)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
Run Code Online (Sandbox Code Playgroud)
...
更新:我下载了Tomcat的源代码并阅读了源代码.Compile.java的相关代码是:
375 File javaFile = new File(ctxt.getServletJavaFileName());
376 Long jspLastModified = ctxt.getLastModified(ctxt.getJspFile());
377 javaFile.setLastModified(jspLastModified.longValue());
Run Code Online (Sandbox Code Playgroud)
ctxt是一个JspCompilationContext,如果有任何错误,它会默认返回-1,而File会从负参数中抛出IllegalArgumentException.我仍然不知道为什么我会收到错误,至少我知道IllegalArgumentException的来源.
//...
<a href="#" id="foo-link">Foo</a>
<script type="text/javascript">
$('#foo-link').click(function(e) {
//...
}
</script>
//...
Run Code Online (Sandbox Code Playgroud)
在HTML页面上使用jQuery,执行上面定义的click处理程序
(至少在Firefox中)传递给处理程序的点击事件之间似乎没有区别 - 原始关键事件'神奇地'转换为点击事件.
有没有办法区分这两种情况?
为了更详细地说明为什么我需要以不同方式处理这两种情况:在我的特定情况下,click处理程序将焦点设置为文本输入字段.此文本输入字段具有已keyup注册的事件处理程序,用于发送AJAX请求.当用户在链接上按Enter键后触发单击处理程序时keyup,现在聚焦的文本输入字段将接收该事件,并且错误地发送AJAX请求.
我想通过在我创建的Activity的public static void main(String [] args)方法中执行它来检查Android Activity的私有方法.
我使用Eclipse ADT和我作为Java应用程序运行Activity的天真方法导致:
Java运行时环境检测到致命错误:
内部错误(classFileParser.cpp:3174),pid = 2936,tid = 2980
错误:ShouldNotReachHere()
所以我查看了运行配置,发现Android 3.1是Classpath的Bootstrap Entries部分中的唯一条目.我设法配置项目的构建路径,以便JRE也在Bootstrap条目中.然后我删除了Android 3.1条目并将android.jar添加到用户条目.
执行运行配置的结果是RuntimeException:
线程"main"中的异常java.lang.RuntimeException:Stub!
在android.content.Context.(Context.java:4)
执行某些测试的另一种方法是启动JUnit测试.但是在私有方法的情况下,这很麻烦.
有没有办法成功运行Android Activity类的main方法?
以下是使用异常对void方法进行存根的主要Mockito文档.但是,Mockito doc中的示例存根无参数方法.如果方法具有参数并且如果a参数不符合合同,则该方法抛出异常,该怎么办?
所以对于下面的课程......
public class UserAccountManager {
/**
* @throws Exception if user with provided username already exists
*/
public void createAccount(User user) throws Exception {
// db access code ...
}
}
Run Code Online (Sandbox Code Playgroud)
...如何使用Mockito模拟UserAccountManager.createAccount,以便在某个User对象作为参数传递给方法时抛出异常?
我正在尝试获取一个SVG对象(欧洲地图),其中7个国家/地区被选为指向特定页面的链接.
在我的SVG文件中,我已经使用这种通用语法包装了应该是链接的每个多边形或路径:
<a xlink:href="http://www.google.com">
<polygon class="lebanon" id="lebanon2" points="249.1,157.2 249.8,157.4 251.7,157.3 252.3,156.1 253.1,156.1 253.9,154.7 254.4,153.1 255.5,152.5 256.1,152.5 256.7,152.2 256.3,151.3 256.4,149.7 255.4,149.2 254.8,147.9 252.4,147.8 252.4,148.1 251.6,148.3 251.3,152.5 250.3,154 249.3,155.4 249.3,157"/>
</a>
Run Code Online (Sandbox Code Playgroud)
但是,在页面加载时,U会收到以下错误:
This page contains the following errors:
error on line 32 at column 15: Namespace prefix xlink for href on a is not defined
Below is a rendering of the page up to the first error.
Run Code Online (Sandbox Code Playgroud)
我如何让它工作?
java ×6
javascript ×2
android ×1
collections ×1
debugging ×1
dom ×1
events ×1
hibernate ×1
html ×1
html5 ×1
hyperlink ×1
iis ×1
installation ×1
jquery ×1
jsp ×1
junit ×1
jvm ×1
lombok ×1
macos ×1
mockito ×1
sorting ×1
string ×1
string-utils ×1
svg ×1
tomcat ×1
tomcat7 ×1
unit-testing ×1
vim ×1
windows ×1
xlink ×1