我想我会在未来的代码中自动检测错误,前提是我们的一些代码需要显式释放连接对象,因为我们认为这是我们使用的 Java HTTP API 中的一个错误(它是哪个 API 并不重要)。
这个想法很简单:对于类 A 上的每个方法,如果该方法调用具有可赋值 from 的返回类型的方法Response
,则该方法也应该调用close()
返回值。所有这一切都没有在被检查的类中实际运行任何代码。
原谅我的咆哮,但只是说出我不想说的话:我找到了http://asm.ow2.org/,它提供了对我需要的字节码的访问,但是:API 似乎是为字节码操作量身定制的(不是纯粹的自省),并且它基于访问者模式是顽固的,几乎不可能通过我的 IDE 的自动完成来发现它的工作原理,并且没有一个 visit*() 方法真正将字节码语义与 Java 对象联系起来,但是字符串混合方法完全签名和返回类型签名。我什至不确定字节码是否在某处定义了任何常量。
虽然我能够使用它,但它真的很优雅。我想知道还有哪些其他 Java 库的哲学更类似于 Mono.Cecil 和 .NET 自己的System.Reflection.MethodBody
对象?