小编Hil*_*kus的帖子

如果没有人调用interrupt(),可以忽略InterruptedException吗?

如果我创建自己的线程(即不是线程池)和我调用的某个地方sleep或任何其他可中断的方法,如果我知道代码中没有其他人在线程上执行中断,则可以忽略InterruptedException .

换句话说,如果线程应该和JVM一样长,这意味着线程不可中断,是否可以安全地假设InterruptedException 永远不会被调用,因此可以吞下异常?

java multithreading exception-handling thread-safety interrupted-exception

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

git:symlink /对外部存储库中文件的引用

在git中是否可以在git仓库中拥有指向特定文件的"链接"?就像git子模块对文件夹所做的那样,但我的问题是关于特定文件,而不是完整目录:

my-project/
    class1.java
    class2.java
    logback.xml (link to a particular file, say https://github.com/theHilikus/JRoboCom/blob/master/jrobocom-core/src/main/resources/logback.xml)
Run Code Online (Sandbox Code Playgroud)

可以看出,在这种情况下,拥有一个完整的子模块文件夹是没有意义的,它只是一个文件.
我很好,链接被锁定到一个特定的提交,但如果它在它自己的项目的生命周期中发生变化,它会更好

需要注意的是,这与文件系统的符号链接无关; 我在谈论对另一个项目,repo,branch或任何东西中的文件的引用.如果文件的内容是重复的而不是文件系统符号链接,那就没问题

git

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

将Stream转换为IntStream

我有一种感觉,我在这里遗漏了一些东西.我发现自己做了以下事情

private static int getHighestValue(Map<Character, Integer> countMap) {
    return countMap.values().stream().mapToInt(Integer::intValue).max().getAsInt();
}
Run Code Online (Sandbox Code Playgroud)

我的问题是从愚蠢的转换StreamIntStream通过mapToInt(Integer::intValue)

有没有更好的转换方式?这一切都是为了避免使用max()Stream,这需要传递一个Comparator但问题是专门对的皈依StreamIntStream

java java-8 java-stream

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

Jenkins的String参数与Text参数

在参数化的Jenkins工作中,String Parameter和之间有什么区别Text Parameter?我甚至没有在文档中看到文本参数的提及

jenkins

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

mockito验证与ArgumentCaptor的交互

要检查与模拟的交互次数,其中方法调用中的参数是某种类型,可以做

mock.someMethod(new FirstClass());
mock.someMethod(new OtherClass());
verify(mock, times(1)).someMethod(isA(FirstClass.class));
Run Code Online (Sandbox Code Playgroud)

这将通过感谢调用isA自从someMethod被调用两次,但只有一次与参数FirstClass

但是,使用ArgumentCaptor时,这种模式似乎是不可能的,即使Captor是为特定参数创建的 FirstClass

这不起作用

mock.someMethod(new FirstClass());
mock.someMethod(new OtherClass());
ArgumentCaptor<FirstClass> captor = ArgumentCaptor.forClass(FirstClass.class);
verify(mock, times(1)).someMethod(captor.capture());
Run Code Online (Sandbox Code Playgroud)

它说模拟不止一次被召唤.

在获取进一步检查的参数时,有没有办法完成此验证?

java unit-testing mocking mockito

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

Maven依赖顺序

在我的项目中有一个实现接口的类.接口来自依赖.我有另一个依赖项,它本身依赖于一个jar,它也包含相同的接口,除了一个有更多方法的版本; 包含相同package-interface的两个jar不具有相同的groupId或artifactId.
编译失败,因为编译器抱怨我的项目中的类没有实现所有方法.我意识到这是因为编译器从错误的jar中获取接口引用.我的问题是,为什么maven使用传递依赖的接口而不是我在项目POM中明确提到的jar中的接口?我可以看到使用的jar出现在定义的前面(所以我想象在类路径中),但我认为在这些情况下,maven通过使用来自具有最短路径的依赖项的碰撞类/接口来解决它

这是依赖树的一部分.请注意,这是grepped但仍然可以看到javax.servlet:servlet-api(实际使用的那个)在树中比tomcat:servlet(应该使用的那个)更深

[builder@ca-rd-build11 proj]$ mvn dependency:tree | grep servlet
[INFO] |  +- javax.servlet:servlet-api:jar:2.4:compile
[INFO] +- tomcat:servlet:jar:4.0.6:compile
Run Code Online (Sandbox Code Playgroud)

我正在使用maven 3.0.4

java jar maven

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

使用Java 8的cobertura-maven-plugin

它只是我或cobertura-maven-plugin不适用于java 8?当它运行我得到

[INFO] --- cobertura-maven-plugin:2.6:instrument (default) @ provider-impl ---
[INFO] Cobertura 2.0.3 - GNU GPL License (NO WARRANTY) - See COPYRIGHT file
[cobertura] WARN  [main] net.sourceforge.cobertura.instrument.CoberturaInstrumenter - Unable to instrument file /var/lib/jenkins/workspace/BranchBuilder/implementations/provider-impl/target/generated-classes/cobertura/com/foo/impl/internal/ServiceProviderImpl$JoinRunner.class
java.lang.IllegalArgumentException
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at net.sourceforge.cobertura.instrument.CoberturaInstrumenter.instrumentClass(CoberturaInstrumenter.java:147)
at net.sourceforge.cobertura.instrument.CoberturaInstrumenter.instrumentClass(CoberturaInstrumenter.java:121)
at net.sourceforge.cobertura.instrument.CoberturaInstrumenter.addInstrumentationToSingleClass(CoberturaInstrumenter.java:234)
at net.sourceforge.cobertura.instrument.Main.addInstrumentationToSingleClass(Main.java:298)
at net.sourceforge.cobertura.instrument.Main.addInstrumentation(Main.java:307)
at net.sourceforge.cobertura.instrument.Main.parseArguments(Main.java:399)
Run Code Online (Sandbox Code Playgroud)

我知道ASM和java 8存在问题所以我怀疑问题是maven-plugin还没有更新为使用兼容java-8的ASM版本

作为参考,我在这里问了这个问题,但没有得到答案

有没有人设法使用java 8的cobertura-maven-plugin?

java cobertura maven maven-cobertura-plugin

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

Java 8 String重复数据删除与String.intern()

我正在阅读关于字符串重复数据删除的Java 8更新20中的功能(更多信息),但我不确定这是否基本上String.intern()已经过时了.

我知道这个JVM功能需要G1垃圾收集器,这对许多人来说可能不是一个选项,但假设一个人正在使用G1GC,那么JVM自动重复数据删除与手动拥有intern你的字符串有什么区别/优势/劣势(一个明显的优点是不必通过调用来污染您的代码intern())?

考虑到Oracle可能使G1GC成为java 9中的默认GC,这一点尤为有趣

java string jvm-hotspot deduplication

18
推荐指数
2
解决办法
6691
查看次数

如何在Dockerfile中声明命名卷?

如果我VOLUME在docker文件中使用它,它会创建一个匿名卷.有没有办法从dockerfile创建命名卷?

我正在寻找相当于Dockerfile的

docker run -v my-named-volume:/mnt/something repo/my-img
Run Code Online (Sandbox Code Playgroud)

我通过Dockerfile设法获得的相当于

docker run -v /mnt/something repo/my-img
Run Code Online (Sandbox Code Playgroud)

我认为它不受支持; 然而,医生说这个

VOLUME指令创建具有指定名称的安装点,并将其标记为从本机主机或其他容器保存外部安装的卷.

这似乎意味着有一种方法可以命名音量,但它没有说明如何

docker dockerfile

18
推荐指数
3
解决办法
6850
查看次数

如何使用Eclipse Neon的Mylyn和Jira,因为连接器已经停产

经过Atlassian 决定停止使用Eclipse Connector for Jira之后,我觉得在Eclipse Neon中没有办法使用Mylyn与Jira集成.只有我吗?有没有解决方法?

我尝试安装Tasktop Dev Pro,但它没有抱怨在更新站点中找不到jar.此外,它似乎不是一个合适的解决方案,因为它带来比我们需要的更多

eclipse jira mylyn eclipse-neon

16
推荐指数
1
解决办法
4927
查看次数