Java 如何在扩展名为.class的文件中定义方法?

Java 如何在扩展名为.class的文件中定义方法?,java,Java,我需要在ITuple.class中定义另一个方法,如 public Object getValue(int i); 但是有浮动 public Object getValue(float j); 我如何添加它 我是新来的风暴,所以我可以找到方法,使相同的工作,我找不到,是不是 我认为您误解了getValueint的功能。以下是javadocs中的描述: 对象getValueint i 获取元组中位置i处的字段。返回对象,因为元组是动态类型的 如您所见,int参数是元组中的位置;i、 e.索引。

我需要在ITuple.class中定义另一个方法,如

public Object getValue(int i);
但是有浮动

public Object getValue(float j);
我如何添加它


我是新来的风暴,所以我可以找到方法,使相同的工作,我找不到,是不是

我认为您误解了getValueint的功能。以下是javadocs中的描述:

对象getValueint i

获取元组中位置i处的字段。返回对象,因为元组是动态类型的

如您所见,int参数是元组中的位置;i、 e.索引。元组位置本质上是整数,因此添加一个接受浮点参数的替代值没有任何意义

假设添加getValuefloat重载确实有意义,那么方法是:

下载源代码.java文件, 在ITuple.java源文件中修改接口 修改实现接口的类的源文件 构建它们以生成新的JAR文件 在应用程序中使用这些JAR文件 。。。并在每次升级Apache Storm版本时重复此修补程序。这可能是个坏主意,即使你所做的有意义


但是试图直接修改.class文件是一个更糟糕的想法。

.class文件是编译过的java文件。我想你是在图书馆里找到这个文件的

我很抱歉告诉你,这个代码不是你的,你不能编辑它


但是,您可以在MyITuple接口中扩展ITuple接口,并在其中添加所需内容。

。类是编译文件。您不能编辑它们。您必须编辑.java文件,然后将其编译成.class文件。我确认此问题的所有注释和答案,但如果您想在方法中发送一个浮点值(如变量a),请执行以下操作getValueinta,它将为您提供一些信息:。谢谢,我对该方法的工作产生误解,因为我在本文中出错了,是的,我知道了,但我面临java.lang.Float无法转换为entities.Tweet的问题。我再发一张。谢谢你的回复,我明白了。您试图解决的实际问题是类型转换失败。这完全不是解决问题的办法。正如我所说的那样,这本可以起到帮助作用的可能性为零。我建议您花点时间做一个Java教程。您似乎正在努力学习Java语言的基础知识。。。例如typecast做什么和不做什么,以及如何诊断typecast失败的问题。更详细地查看链接问题,您可能在创建args列表中的TridentTuple实例的代码中犯了错误。您编写的代码期望元组的第一个元素是Tweet,但实际上是一个Float。您无法用类型转换解决该不匹配问题。你要做的是弄清楚为什么元组包含你意想不到的东西!谢谢你的回复。我有一些Java的BASCI不错。我只是快速决定检测这个错误。无论如何谢谢你。我发现了真正的问题并试图解决它。如果我不能,我会把它贴在这里。你能帮我吗?