当我尝试编译以下代码时
public interface SomeInterface{
private static Logger logger = Logger.getLogger();
public default void someMethod(){
logger.info("someMethod: default implementation");
}
}
Run Code Online (Sandbox Code Playgroud)
我收到一个错误
Illegal modifier for the interface field SomeInterface.logger; only public, static & final are permitted
Run Code Online (Sandbox Code Playgroud)
当我删除private修饰符时,代码编译,但我不希望包中的其他类看到此字段.
为什么Java在实际上有意义时不允许我做这样的事情?
我最近开始对一些Java代码进行基准测试,以便为我的程序获得最佳性能结果,并注意到一些奇怪的事情.也就是说,我已经对以下方法进行了基准测试:
private static final int n = 10000;
public static void test0(){
int m = 0;
for(int i = 0; i < n; ++i){
m = Math.max(i, m);
}
}
public static void test1(){
int m = 0;
for(int i = 0; i < n; ++i){
m = ((i >= m) ? i : m);
}
}
Run Code Online (Sandbox Code Playgroud)
得到了那些结果:
| Test 0 | Test 1 |
----------+-----------------+-----------------+-
Average: | 51,77 ns | 13956,63 ns |
Best: | 0,00 ns | 6514,00 …Run Code Online (Sandbox Code Playgroud) 我想根据Google Java Style格式化我的代码。
涉及到import 语句时存在一些问题。除了手动编辑每个类之外,我无法满足的一个规则是:
如果同时存在静态和非静态导入,则单个空行将两个块分开。
显然,没有办法Organize Imports在 Eclipse 中配置操作来添加这个空行。
是否有任何变通方法、插件或计划添加此类功能(或者是我自己编写一个或使用其他 IDE 的唯一选择)?