java 方法过长_是否有一种使用过长(> 64kb编译)方法转换Java代码的自动方法?...

据我所知,JVM每个方法的编译代码有64KB的限制。我有一个生成要运行的Java代码的工具,有时生成的代码包含比这更长的方法。是否有一种使用过长(> 64kb编译)方法转换Java代码的自动方法?

是否存在一种自动的方式来将一个Java类文件用过长的方法转换成一个产生相同结果但可以编译的结果?

在一个简单的例子,以下代码:

public void longMethod

{

doSomething1();

doSomething2();

/* snip */

doSomething20000();

}

可能被转化为:

public void longMethod

{

longMethod_part1();

longMethod_part2();

/* snip */

longMethod_part10();

}

public void longMethod_part1()

{

doSomething1();

/* snip */

doSomething1000();

}

/* snip */

public void longMethod_part10()

{

doSomething9001();

/* snip */

doSomething10000();

}

然而,存在的并发症,例如很长的方法可能是一个非常长的链。即使一般情况太困难,尽力而为的工具也会引起人们的兴趣。

编辑:几种善意的人建议修复生成这些长方法的工具。虽然这是一个很好的想法,但我不能利用这一点。我仍然欢迎任何关于我在上面提出的一般问题的想法。

+6

在我看来,唯一可行的方法是修复产生这个混乱的工具。要么让它分裂它的方法,要么更好:摆脱这种巨大方法的需要。 –

2009-09-30 14:58:08

+0

不幸的是修复这个工具并不是一个真正的选择。 –

2009-09-30 15:18:18

+0

另外,上面的例子仅用于说明。真正的代码不会这么简单。 –

2009-09-30 15:25:30

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值