我有以下代码,其中Sonar Qube引发了严重错误.
public void onMessageReceived(Message message) {
if((message.getTargetInstanceId() != Message.ANY_TARGET) && (message.getTargetInstanceId() != this.instanceId)) {
//Invalid message ignore
return;
} else {
int randTime = ran.nextInt(2000);
FutureTask<Message> workerTask = new FutureTask<>(new DummyCommandHandler(randTime, message,messageBus,instanceId));
workerTask.run();
}
}
Run Code Online (Sandbox Code Playgroud)
以下是我得到的问题.
Description Assignee Resource New issue
Thread.run() and Runnable.run() should not be called directly : Call the method Thread.start() to execute the content of the run() method in a dedicated thread.
Run Code Online (Sandbox Code Playgroud)
要在FutureTask中调用start方法,它首先没有start方法.它只有一个run方法.我怎样才能克服这个问题?有没有Java解决方案或Sonarqube解决方案?请指教.
通过网络摄像头,我捕获了前方人物的图像。然后我显示一个视频。之后,我必须找出是否同一个人站在前面。我怎样才能做到这一点?互联网中的可能性需要许多图像来训练SVM。我只有一张要被识别的人的照片。我该如何实现?请提供一些代码示例(如果可能的话),因为我是新手。我已经实现了摄像头逻辑。只是我需要的图像识别。
opencv image-processing face-recognition image-recognition computer-vision
我编写了以下代码,以使用证书库中的证书验证文件的签名.但是,当我尝试获取其签名并将其传递给SignedData方法时,我得到以下异常.
org.bouncycastle.cms.CMSException: Malformed content.
at org.bouncycastle.cms.CMSUtils.readContentInfo(Unknown Source)
at org.bouncycastle.cms.CMSUtils.readContentInfo(Unknown Source)
at org.bouncycastle.cms.CMSSignedData.<init>(Unknown Source)
at VerifyFinal.main(VerifyFinal.java:65)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
Caused by: java.lang.IllegalArgumentException: unknown object in getInstance: org.bouncycastle.asn1.DERApplicationSpecific
at org.bouncycastle.asn1.ASN1Sequence.getInstance(Unknown Source)
at org.bouncycastle.asn1.cms.ContentInfo.getInstance(Unknown Source)
... 9 more
Run Code Online (Sandbox Code Playgroud)
下面是我用来验证文件签名的代码.
Security.addProvider(new BouncyCastleProvider());
KeyStore msCertStore = KeyStore.getInstance("Windows-MY", "SunMSCAPI");
msCertStore.load(null, null);
X509Certificate cer = ((X509Certificate) msCertStore.getCertificate("Software View Certificate Authority"));
PublicKey pubKey = cer.getPublicKey();
byte[] sigToVerify = cer.getSignature();
Signature signature = Signature.getInstance("SHA1WithRSA", "BC");
signature.initVerify(pubKey);
CMSSignedData cms = new CMSSignedData(cer.getSignature()); …Run Code Online (Sandbox Code Playgroud) 我写的这个正则表达式匹配任何 .ts 或 .tsx 文件名,但不应该匹配 spec.tsx 或 spec.ts。下面是我写的正则表达式。
(?!spec)\.(ts|tsx)$
Run Code Online (Sandbox Code Playgroud)
但它无法忽略.spec.tsx 和spec.ts 文件。我在这里做错了什么?请指教。
我有一个有两个构造函数的类.我正在尝试使用guice工厂创建此类的实例.如果没有传递参数,则应调用默认构造函数.如果传递参数,则应调用带参数的构造函数.但是,即使我将参数传递给工厂方法,仍然会调用默认构造函数.带参数的构造函数根本不会被调用.以下是我的工厂类.
public interface MapperFactory {
PigBagMapper createPigBagMapper(@Assisted("pigMetaInfoList") List<String> sourceMetaInfoList);
JsonMapper createJsonMapper(@Assisted("apiName") String apiName) throws EndpointNotFoundException, JsonMapperException;
JsonMapper createJsonMapper();
}
Run Code Online (Sandbox Code Playgroud)
下面是我想要注入的构造函数.
@AssistedInject
public JsonMapper() {
handlers = new LinkedList<>();
}
@AssistedInject
public JsonMapper(@Assisted("apiName") String apiName) throws EndpointNotFoundException, JsonMapperException {
somelogic();
}
Run Code Online (Sandbox Code Playgroud)
下面是我在Abstract Module实现类中的模块绑定.
install(new FactoryModuleBuilder()
.implement(PigBagMapper.class, PigBagMapperImpl.class)
.implement(JsonMapper.class, JsonMapperImpl.class)
.build(MapperFactory.class));
Run Code Online (Sandbox Code Playgroud)
下面是我如何调用构造函数.
mapperFactory.createJsonMapper(apiName);
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?任何帮助将非常感激.
编辑:
请注意,JsonMapperImpl类没有构造函数.它只是一个公共方法,就是这样.
我有一个字符串列表,我得到的字符串拆分.我需要从列表中的字符串中删除周围的引号.使用方法链接我该如何实现?我尝试了以下,但没有工作.类型干扰失败.
val splitCountries: List<String> = countries.split(",").forEach{it -> it.removeSurrounding("\"")}
Run Code Online (Sandbox Code Playgroud) 我有一个我正在使用的 Java 可选变量,如下所示。
Optional<Forms> formsOptional = input.data().get().forms();
if(formsOptional.isPresent()) {
this.doSomething(myValue, forms.get());
} else {
this.doSomething(myValue, Forms.builder().names(myList).build());
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下, doSomething 方法是一个执行某些操作的 void 方法。由于这是一个空方法,我对如何使用 map().orElseGet() 感到困惑,因为我也没有任何要转换的东西。任何使用任何 Java8 可选技术优化这段代码的建议将不胜感激。
我使用延迟初始化方法创建了一个Singleton类.这就是getInstance方法是同步的.但是,如果不改变设计模式,有一种方法可以创建Singleton类的多个实例.因为更改Singleton模式将需要进行大量的体系结构更改.请建议一种创建多个实例的方法.请帮助Java.
java ×5
bouncycastle ×1
certificate ×1
constructor ×1
futuretask ×1
guice ×1
if-statement ×1
instance ×1
java-8 ×1
kotlin ×1
list ×1
object ×1
opencv ×1
optional ×1
regex ×1
security ×1
sign ×1
singleton ×1
sonarqube ×1
string ×1