我需要为Web服务器实现全局对象收集统计信息.我有Statistics
单身,有方法addSample(long sample)
,随后打电话updateMax
.这显然是线程安全的.我有这个方法来更新整个统计信息的最大值:
AtomicLong max;
private void updateMax(long sample) {
while (true) {
long curMax = max.get();
if (curMax < sample) {
boolean result = max.compareAndSet(curMax, sample);
if (result) break;
} else {
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这个实现是否正确?我正在使用java.util.concurrent,因为我相信它会比简单快synchronized
.是否有其他/更好的方法来实现这一点?
以下部分代码引发了SonarQube的一个主要错误:"仅有条件地调用方法."
我该如何解决这个问题?
if(us != null){
logger.info("Log this: {}", us.toString());
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 TypeScript 的 TypeChecker API 创建一个处理特定类型的工具。我需要唯一地标识特定类型——比如DomSanitizer
来自@angular/platform-browser
包的Angular 。我有以下代码来获取类型的完全限定名称
let type = typeChecker.getTypeAtLocation(node);
let fqn = typeChecker.getFullyQualifiedName(type.getSymbol());
Run Code Online (Sandbox Code Playgroud)
但是,这将返回包含node_modules
目录绝对路径的名称,例如
"/home/user/project/node_modules/@angular/platform-browser/platform-browser".DomSanitizer
我想删除特定于项目的部分,只有类似@angular/plaform-browser/platform-browser.DomSanitizer
. 我更喜欢使用 TypeScript API 而不是对这个值做一些字符串操作,因为我希望 API 更健壮。
我有两个实现一些通用接口的枚举,我想从该方法返回类文字.但是我无法正确指定交集类型.请参阅下面的说明问题的代码示例.
public class GenericsTest {
interface Iface {
}
enum E1 implements Iface {
}
enum E2 implements Iface {
}
<E extends Enum<E> & Iface> Class<E> getEnum1() {
return E1.class; //ERROR incompatible types: java.lang.Class<GenericsTest.E1> cannot be converted to java.lang.Class<E>
}
Class<? extends Enum<?>> getEnum3() {
return E1.class; //OK
}
Class<? extends Iface> getEnum4() {
return E1.class; //OK
}
<E extends Enum<E> & Iface> void enumParam(Class<E> p) {
enumParam(E1.class); //OK
}
}
Run Code Online (Sandbox Code Playgroud)
#getEnum1
方法不编译.有趣的是,它作为参数值起作用#enumParam
.如何指定交集类型以便能够从方法返回类文字?
我有一个项目想与我的团队分享,其中包括 IntelliJ 设置。该项目需要几个 IntelliJ 插件来方便工作。如何与我的团队轻松共享插件设置,这样他们就不需要一一安装插件?
我们使用SonarQube进行代码分析.SonarQube可以分析所有语言(我们删除了参数sonar.language=
).我们有.php
档案; file有PHP,还有编写的JavaScript代码.我们知道JavaScript代码有一些错误,但SonarQube分析没有检测到该错误.
如何执行SonarQube分析,以便在出现任何错误时纠正我们的JavaScript代码.
有人说'SonarQube Java Analyzer'将包含FindBug规则.所以我们不需要在声纳中添加任何外部的findbug规则.
http://www.sonarqube.org/sonarqube-java-analyzer-the-only-rule-engine-you-need/
这是否已在SonarQube 5.4中添加?
谢谢
Ganesh神
错误 | 爪哇| 声纳Qube | 请提供带有 sonar.java.binaries 属性的项目的编译类。
下面是我的 sonar-project.properties 文件。我已经提供了我的二进制文件路径。但是,我仍然收到错误消息。
sonar.projectKey=Hello
sonar.projectName=JavaPro
sonar.projectVersion=1.0
sonar.java.sources=java
sonar.java.binaries=bin/A.jar
sonar.java.file.suffixes=java
sonar.sourceEncoding=UTF-8
Run Code Online (Sandbox Code Playgroud) java ×4
sonarqube ×4
enums ×1
findbugs ×1
generics ×1
javascript ×1
logging ×1
php ×1
sonar-runner ×1
sonarqube5.3 ×1
typescript ×1