标签: static-import

在执行导入静态时调用静态类型方法的语法是什么?

目前我在做

import org.easymock.EasyMock;
...
foo.bar(EasyMock.<List<String>>anyObject());
Run Code Online (Sandbox Code Playgroud)

我想知道是否有办法避免提及课程EasyMock.我有这样的想法:

import static org.easymock.EasyMock.anyObject;
...
foo.bar(anyObject<List<String>>());
Run Code Online (Sandbox Code Playgroud)

然而,这不编译.还有其他办法吗?

java syntax static static-import

4
推荐指数
1
解决办法
1355
查看次数

Pmd 规则:过多的静态导入可能导致 unitTest 中的代码乱七八糟

我有一个疑问,我有一个类,我在其中对导入常量使用不同的静态导入,我的问题是我收到错误消息:Too many static imports may lead to messy code. 但是在单元测试中看起来这不是一个坏习惯。例如在单元测试类中,我使用这个导入有任何问题:

import static com.rccl.middleware.kidsclub.engine.web.controller.KidController.KID_FIND_PATH;
import static com.rccl.middleware.kidsclub.engine.web.controller.KidController.KID_LIST_PATH;
import static com.rccl.middleware.kidsclub.engine.web.controller.KidController.KID_PATH;
import static com.rccl.middleware.kidsclub.engine.web.controller.KidController.KID_REGISTER_ALL_PATH;
import static org.hamcrest.Matchers.hasSize;
import static org.hamcrest.Matchers.is;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.BDDMockito.given;
import static org.mockito.BDDMockito.then;
import static org.mockito.Mockito.times;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.request;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;```
Run Code Online (Sandbox Code Playgroud)

相反在我的课堂上:

import static org.springframework.http.HttpStatus.BAD_REQUEST;
import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR;
import static org.springframework.http.HttpStatus.NOT_FOUND;
import static org.springframework.http.HttpStatus.UNPROCESSABLE_ENTITY;
Run Code Online (Sandbox Code Playgroud)

这些导入给我带来了问题,我收到了错误消息:过多的静态导入可能会导致代码混乱。我不太确定为什么。

我无法访问 pmd 文件来找出此问题的真正原因。有什么线索吗?

谢谢!

java pmd static-import

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

静态类何时初始化?

考虑一个只有静态字段Java类,没有构造函数:

public class OnlyStatic {
   static O1 o1 = new o1();
   static O2 o2 = new o2();

   public static int compute(int whatever) {
       return o1.foo+o2.bar+whatever;
   }
}
Run Code Online (Sandbox Code Playgroud)

在另一个类中,使用该方法compute,或者通过static import:

static import OnlyStatic.compute
int a = OnlyStatic.compute(3);
Run Code Online (Sandbox Code Playgroud)

或者直接假设调用者在同一个包中:

int a = OnlyStatic.compute(3);
Run Code Online (Sandbox Code Playgroud)

o1和o2何时初始化?在导入时,还是compute()第一次调用时?

java import initialization static-import

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

为什么这个静态导入不能编译

下面类导致在行编译错误 println("Hello World!");:The method println(String) is undefined for the type StaticImport:

import static java.lang.Math.*;
import static java.lang.System.*;

public class StaticImport {
    public static void main(String[] args) {
        println("Hello World!");
        out.println("Considering a circle with a diameter of 5 cm, it has:");
        out.println("A circumference of " + (PI * 5) + " cm");
        out.println("And an area of " + (PI * pow(2.5,2)) + " sq. cm");
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么可以在java.lang.Math中访问pow方法而不显式导入pow,这与需要使用方法名称'out'的println方法不同?

java static-import

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

标签 统计

java ×4

static-import ×4

import ×1

initialization ×1

pmd ×1

static ×1

syntax ×1