如何解决Java Lambda 的 ArrayIndexOutOfBoundsException
我正在尝试将代码转换为 lambda 版本,但在构建代码时出现 java.lang.Arrayindexoutofboundsexception: 18 异常。
这是工作代码:
private void run(){
Producer<String,String> producer = (Producer<String,String>) new KafkaProducer();
producer.send(null,new Callback() {
public void onCompletion(RecordMetadata Metadata,Exception e) { }
});
}
private void run(){
Producer<String,(Metadata,e) -> { });
}
这是错误信息:
java.lang.Arrayindexoutofboundsexception: 18
at aQute.lib.osgi.Clazz.parseClassFile(Clazz.java:412)
at aQute.lib.osgi.Clazz.parseClassFile(Clazz.java:333)
at aQute.lib.osgi.Clazz.parseClassFileWithCollector(Clazz.java:323)
at aQute.lib.osgi.Clazz.parseClassFile(Clazz.java:313)
at aQute.lib.osgi.Analyzer.analyzeJar(Analyzer.java:1646)
at aQute.lib.osgi.Analyzer.analyzeBundleClasspath(Analyzer.java:1534)
at aQute.lib.osgi.Analyzer.analyze(Analyzer.java:115)
at aQute.lib.osgi.Builder.analyze(Builder.java:296)
at aQute.lib.osgi.Analyzer.calcManifest(Analyzer.java:292)
at aQute.lib.osgi.Builder.build(Builder.java:68)
at org.apache.Felix.bundleplugin.BundlePlugin.buildOsgiBundle(BundlePlugin.java:375)
at org.apache.Felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:270)
at org.apache.Felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:224)
at org.apache.Felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:215)
at org.apache.maven.plugin.DefaultBuildpluginManager.executeMojo(DefaultBuildpluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:957)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:289)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:193)
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:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)
[ERROR] Error building bundle com.wso2telco:logging-extension:bundle:3.0.0 : Exception: 18
[ERROR] Error building bundle com.wso2telco:logging-extension:bundle:3.0.0 : Invalid class file: MessageSender$KafkaDataPublisher.class
[ERROR] Error(s) found in bundle configuration
public class MessageSender {
ExecutorService executorService = null;
public MessageSender(ExecutorService executorService) {
this.executorService = executorService;
}
public void sendMessage(String transactionLog) {
Runnable worker = new KafkaDataPublisher();
executorService.execute(worker);
}
public static class KafkaDataPublisher implements Runnable {
@Override
public void run() {
Producer<String,String>) new KafkaProducer();
producer.send(null,new Callback() {
public void onCompletion(RecordMetadata Metadata,Exception e) {}
});
}
}
}
版本:
Java 8
解决方法
你有没有试过这样:
private void run(){
Producer<String,String> producer = (Producer<String,String>) new KafkaProducer();
producer.send(null,(RecordMetadata metadata,Exception e) -> { });
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。