- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试调用一个 invoke 方法,但有一个我无法解释的错误。
我听说 Invoke Exact 方法必须返回,但即使那时它也不起作用。
public boolean exec(String id, ChannelHandlerContext ctx, ByteBuf byteBuf) {
assert ctx != null;
assert byteBuf != null;
MethodHandle methodHandle = this.idMethods.get(id);
if(methodHandle != null) {
try {
Object object = this.idObjects.get(id);
Boolean b = (Boolean) methodHandle.invokeExact(object, ctx, byteBuf);
return true;
} catch (Throwable throwable) {
throwable.printStackTrace();
}
}
return false;
}
在此代码上程序崩溃
Boolean b = (Boolean) methodHandle.invokeExact(object, ctx, byteBuf);
java.lang.invoke.WrongMethodTypeException: expected (,ChannelHandlerContext,ByteBuf)boolean but found (Object,ChannelHandlerContext,ByteBuf)Boolean
at java.lang.invoke.Invokers.newWrongMethodTypeException(Invokers.java:298)
at java.lang.invoke.Invokers.checkExactType(Invokers.java:309)
at de.moldiy.molnet.MessageExchangerManager.exec(MessageExchangerManager.java:54)
at de.moldiy.molnet.MessageHandler.channelRead0(MessageHandler.java:22)
at de.moldiy.molnet.MessageHandler.channelRead0(MessageHandler.java:7)
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run(Thread.java:836)
这是包含我要调用的方法的类
s.loadMessageExchanger(new ServerMessageExchanger() {
@TrafficID(id = "cords")
public Boolean setCords(ChannelHandlerContext ctx,ByteBuf byteBuf) {
System.out.println("jaaa");
return true;
}
});
最佳答案
由于您正在对 ServerMessageExchanger
的实例调用方法,您需要将该实例作为第一个参数传递给 MethodHandle.invokeExact
.
像这样的东西:
ServerMessageExchanger sme;
....
MethodHandle methodHandle = this.methods.get(id);
Boolean b = (Boolean) methodHandle.invokeExact(sme, ctx, byteBuf);
关于java - 为什么即使 MethodHandle 没问题,在 invokeExact 上也会得到 WrongMethodTypeException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64117983/
大家平时都是怎么给自己的产品开发官方网站的? 是不是先在本地配置好环境,然后使用 IDE 写代码,写完代码后部署到服务器生成预览链接,团队协作成员再打开浏览器访问,然后你再修改,再部署,再访问,再修
请看下面我的构造函数,我正在从字符串创建一个分数: public Fraction(String str) { if(str.isEmpty()) {
当我向不可变 map 添加对象时,我注意到了这一点。 如果我添加一个对象,例如: Map model = ImmutableMap.of( "post", post
偶尔在我的网站上,我注意到无法加载外部文件。如果我重命名它并指向新名称,它就可以正常工作。旧名称不再有效。 通常这发生在图像上,但今天它发生在 css 文件上。它会自然而然地发生,而且是不可预测的。当
好的,我以 root 身份登录到 MySQL 命令行客户端。然后我以 root 身份使用 MySQLdb 模块打开或运行一个 python 应用程序。当我使用 python (IDLE) 检查结果时,
这个问题源于看Rasmus Lerdorf's talk from Drupalcon .顺便说一下,这个问题和他的演讲与 Drupal 没有任何关系……只是在他们的 session 上提出的。我自己
在使用 AJAX 提交创建表单后,我感到非常自豪,我在 IE8 中测试它并得到“消息:‘数量’未定义”。我读到这可能与早期版本的 IE 使用 ActiveX 进行 AJAX 请求有关,但我对 JS 很
对于我的一个项目,我必须对构造函数进行动态调用。但由于这是 Java 7,我使用 java.lang.invoke 而不是“经典”反射 API。 代码: @ParametersAreNonnullBy
基本上,我收到原始时间戳,我需要将它们格式化为 HH:MM:SS 格式。 最佳答案 这是一个提供 UTC 日期灵活格式的函数。它接受类似于 Java 的 SimpleDateFormat 的格式字符串
差不多两周后...我放弃了!!! 我实现了从图库和相机上传图片... startActivityForResult... ok! EXTERNAL_CONTENT_URI... ok! ACTIO
我有六张尺寸为 350x400 (WxH) 的 .jpg 图像。 我想将它们变成质量好(但不太重)且尺寸相同的 avi 文件 我正在做: /var/www/html/folder/ffmpeg/ffm
在我的应用程序中,我正在播放一些电影。我已经检查了电影的信息,它们似乎在 MPMoviePlayerController 应该能够处理的范围内(比特率等) 它们通过 URL 进行流式传输,并且只能在
program UInt32ToVariant; uses Vcl.Dialogs, System.SysUtils, System.Variants; var ui32Val: Cardin
无法弄清楚我的 Electron 项目出了什么问题。以 electron . 开头一个 native 模块(pkcs11js)将失败。见图片: 但运行 npm run dist将构建安装程序就好了,并
我正在使用 boost 文件系统获取当前目录的路径,然后检查该目录是否存在。 is_directory()没问题,但是 exists()在同一条路上失败了,我错过了什么吗? 示例代码(boost 1.
此使用 JFrames 的测试代码按预期工作(将在 10 秒后关闭)。 // **** Imports **** import java.awt.*; import javax.swing.JFram
我有一个相当复杂的 LINQ 查询,它通常很慢,它创建了一个 System.Data.SqlClient.SqlException : "等待操作超时"。 但是,当我记录生成的 SQL(通过将 Tex
这个问题在这里已经有了答案: When does JS interpret {} as an empty block instead of an empty object? (2 个答案) 关闭 5
我正在尝试实现一个哈希表。我收到上述错误,但 AFAIK 我已经正确声明了我所有的结构/typedef。 (我还在学C,sorry)错误发生在我的 while 循环中的 test.c 中,我在其中放置
例如 sprintf(pos,"%f ",cl.snap.ps.origin[0]); //don't start with strcat sprintf(tmp,"%f ",cl.snap.ps.o
我是一名优秀的程序员,十分优秀!