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

时间:2017-05-31 13:11:48

标签: java

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

public Object getValue(int i);

但是使用Float

public Object getValue(float j);

我该如何添加它?

我是暴风雨的新手,所以我能找到与我搜索到的相同工作但找不到的方法,是不是?

2 个答案:

答案 0 :(得分:3)

我认为你误解了getValue(int)的作用。以下是javadocs的描述:

  

对象getValue(int i)

     

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

如您所见,int参数是元组中的位置;即索引。元组位置是固有的整数,因此添加一个采用浮点参数的替代方法没有任何意义。

假设(假设)添加getValue(float)重载确实有意义,那么这样做的方法是:

  1. 下载源代码(“。java”文件),
  2. 修改ITuple.java源文件
  3. 中的界面
  4. 修改实现接口的类的源文件
  5. 将它们全部构建以生成新的JAR文件
  6. 在您的应用程序中使用这些JAR文件
  7. ...每次升级Apache Storm版本时重复此修补程序。这可能是一个坏主意,即使你正在做的事情是有道理的。

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

答案 1 :(得分:0)

.class文件是编译的java文件。我假设您在库中找到了此文件。

我不敢告知此代码不属于您,您无法对其进行编辑。

然而,您可以做的是扩展ITuple界面中的MyITuple界面并添加您想要的任何内容。