小编Vin*_*uri的帖子

初始化模拟对象 - MockIto

有许多方法可以使用MockIto初始化模拟对象.这些中最好的方法是什么?

1.

 public class SampleBaseTestCase {

   @Before public void initMocks() {
       MockitoAnnotations.initMocks(this);
   }
Run Code Online (Sandbox Code Playgroud)

2.

@RunWith(MockitoJUnitRunner.class)
Run Code Online (Sandbox Code Playgroud)

[编辑] 3.

mock(XXX.class);
Run Code Online (Sandbox Code Playgroud)

建议我,如果有任何其他方法比这些更好......

java junit mockito

107
推荐指数
7
解决办法
17万
查看次数

比较两个字节数组?(JAVA)

我有一个带有〜已知二进制序列的字节数组.我需要确认二进制序列是它应该是什么.我已经尝试.equals过了==,但都没有奏效.

byte[] array = new BigInteger("1111000011110001", 2).toByteArray();
if (new BigInteger("1111000011110001", 2).toByteArray() == array){
    System.out.println("the same");
} else {
    System.out.println("different'");
}
Run Code Online (Sandbox Code Playgroud)

java binary

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

从JSON字符串创建Hashmap

从java中的json字符串创建一个hashmap?

我有像json字符串,{"phonetype":"N95","cat":"WP"}并希望转换为标准的Hashmap.

我该怎么做?

java android json hashmap

42
推荐指数
5
解决办法
13万
查看次数

Idea IntelliJ社区版的Java代码覆盖率工具

我知道这已经被问到(链接)IntelliJ以前的版本.

还有一些我如何获得有关这方面的信息 .

我尝试过使用atlassian三叶草工具.

请建议我可以使用12.X版IntelliJ社区版的任何新插件或工具.

java junit intellij-idea

7
推荐指数
1
解决办法
4725
查看次数

`null`被视为String?

String s = null;
s = s + "hai";
System.out.println(s);
Run Code Online (Sandbox Code Playgroud)

输出:

nullhai
Run Code Online (Sandbox Code Playgroud)

以为这会让我觉得NPE.

什么是背后的基本逻辑

  • 使用+(连接)时不投掷NPE
  • 使用时扔NPE .

java string nullpointerexception

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

在java中使用for-each循环

在我的代码中,

for(City city : country.getCities()){
   // do some operations
}
Run Code Online (Sandbox Code Playgroud)

使用country.getCities()是否代价高昂?JVM是否会为每次调用维护堆栈跟踪..?

List<City> cityList = country.getCities();
for(City city : cityList){
   // do some operations
}
Run Code Online (Sandbox Code Playgroud)

什么是最好的使用方法?

java

5
推荐指数
1
解决办法
771
查看次数

什么是mvn声纳:声纳呢?

命令mvn sonar:sonar执行的maven生命周期阶段是什么?

虽然我看到屏幕上运行的日志,但是我发现了一个非常高的级别test, install.

考虑以下示例,

我有一个如下的maven项目

maven-root

 maven-child-1

 maven-child-2
Run Code Online (Sandbox Code Playgroud)

考虑以下场景,我在根级别按顺序完成它们

  1. mvn clean install
  2. mvn sonar:sonar - 见报告
  3. 通过添加一些测试用例来修改child-2以增加代码覆盖率
  4. mvn sonar:sonar

我对测试用例的更改未反映在报告中.

  1. 我已经删除了sonarqube的报告
  2. mvn sonar:sonar

这仍然是我的旧报告.

简而言之,我需要执行mvn clean install然后mvn sonar:sonar吗?

如果mvn sonar:sonar封面执行mvn clean install,为什么报告给我旧数字?

java maven sonarqube

5
推荐指数
1
解决办法
4930
查看次数

创建Abdera客户端失败

创建apache Abdera客户端失败

我的部分代码是

    Abdera abdera = new Abdera();
    AbderaClient abderaClient =  new AbderaClient(abdera);
Run Code Online (Sandbox Code Playgroud)

这让我失望......

java.lang.RuntimeException: java.lang.NoSuchMethodException: org.apache.abdera.protocol.client.cache.LRUCacheFactory.<init>(org.apache.abdera.Abdera)
at org.apache.abdera.util.Discover.locate(Discover.java:37)
at org.apache.abdera.util.Discover.locate(Discover.java:21)
at org.apache.abdera.util.ServiceUtil.newInstance(ServiceUtil.java:142)
at org.apache.abdera.protocol.client.AbderaClient.initCacheFactory(AbderaClient.java:132)
at org.apache.abdera.protocol.client.AbderaClient.<init>(AbderaClient.java:108)
at org.apache.abdera.protocol.client.AbderaClient.<init>(AbderaClient.java:9
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.rules.ExpectedException$ExpectedExceptionStatement.evaluate(ExpectedException.java:168)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:65)
Caused by: java.lang.NoSuchMethodException: org.apache.abdera.protocol.client.cache.LRUCacheFactory.<init>(org.apache.abdera.Abdera)
    at java.lang.Class.getConstructor0(Class.java:2706)
    at java.lang.Class.getConstructor(Class.java:1657) …
Run Code Online (Sandbox Code Playgroud)

java apache-abdera

5
推荐指数
1
解决办法
180
查看次数

为什么spring boot应用程序不能正常退出?

我在Intellij(Linux上的13.1.5)上使用bootRun任务运行一个spring启动应用程序,我试图在生命周期回调中关闭一个监听器线程,但是当在Intellij中停止应用程序时,我发现我的监听器线程仍然是运行和记录.

  1. 在控制台中:

    "与目标虚拟机断开连接,地址:...,传输:'socket'6:39:22 AM:外部任务执行完成'bootRun'."

  2. 然后我做了ps grep并杀了进程,然后才控制台打印:

    "2016-03-28 06:39:59.606 INFO 7740 --- [Thread-1] ationConfigEmbeddedWebApplicationContext:关闭org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@657617e6:... 2016-03-28 06:39: 59.611 INFO 7740 --- [Thread-1] osjeaAnnotationMBeanExporter:在关闭时取消注册JMX暴露的bean"

我的问题:

  1. 为什么要停止Intellij中的app而不关闭应用程序上下文?
  2. 根据Doc,Spring Web应用程序自动注册关闭钩子.但是我试过@PreDestroy,destroMethod,并实现了LifeCycle,为什么没有人被调用?

java spring spring-mvc intellij-idea spring-boot

5
推荐指数
0
解决办法
2043
查看次数

为枚举字符串值定义常量“值”

对于如下定义的枚举

public enum Cars {

    SWIFT("Maruti"),
    DZIRE("Maruti"), 
    CIAZ("Maruti"), 
    I10("Hyundai"), 
    CRETA("Hyundai");

    String company;
    Cars(String company){
        this.company = company;
    }   
}
Run Code Online (Sandbox Code Playgroud)

声纳错误

Define a constant instead of duplicating this literal "Maruti" 3 times.

如果我们定义静态字符串,它将无法编译

Cannot reference a field before it is defined

解决方案1:

public enum Cars {

    SWIFT(CarsString.MARUTI.companyName),DZIRE("Maruti"), I10("Hyundai"), CRETA("Hyundai");

    static String MARUTI = "Maruti";
    String company;
    Cars(String company){
        this.company = company;
    }

    enum CarsString {
        MARUTI("maruti"),
        HYUNDAI("Hyundai");
        String companyName;
        CarsString(String companyName){
            this.companyName = companyName;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

解决方案2:

不知道这是否是我们这样做的方式。当Cars.MARUTI未引用它时,它会出错Cannot reference …

java enums sonarqube

5
推荐指数
1
解决办法
65
查看次数