当前位置: 首页 > 面试题库 >

有没有办法在运行时获取类的字节码?

澹台华采
2023-03-14
问题内容

在Java中,是否有一种方法(在运行时)获取定义了特定类的字节码?

换句话说,有没有一种方法可以获取在加载特定类时byte[]传递给数组的数组ClassLoader.defineClass(String name, byte[] b, int off, int len)?我看到已经声明了此方法final,因此ClassLoader似乎无法创建一个自定义类来拦截类定义。

过去,我曾使用该类ClassLoader通过该getResourceAsStream(String)方法获取字节码,但我希望使用更规范的解决方案。


问题答案:

这是如何实现代理的说明



 类似资料:
  • 问题内容: 我快速浏览了Guava的源代码和文档,但似乎都没有提到版本。我想知道是否有一种方法可以在运行时获取Guava的版本信息。 如果实际上不存在此版本信息,则不必通过任何获取器进行访问。如果将其保存在某个字段中,而该字段在加载番石榴时没有得到GC,那么就足够了。 在运行时的任何地方都可以使用此版本信息吗? 我对此有非常具体的用途。我的工作很大一部分是分析Java堆转储,以识别并修复代码中导致

  • 问题内容: 我们正在开发S60版本,该平台具有不错的Python API。 但是,关于Android上的Python尚无任何官方资料,但是由于Jython存在,有没有办法让蛇和机器人一起工作? 问题答案: 一种方法是使用: 开源Python库,用于快速开发利用创新用户界面的应用程序,例如多点触控应用程序。 可在和上运行。你可以在所有受支持的平台上运行相同的代码。

  • 问题内容: 因此,我使用Python 3.2.1的cElementTree解析了一些XML文件,并且在解析过程中,我注意到某些标签缺少属性信息。我想知道是否有任何简单的方法来获取xml文件中这些元素的行号。 问题答案: 查看文档,我看不到使用cElementTree做到这一点。 但是,我对lxml的XML实现版本感到幸运。使用libxml2,它的替换量几乎下降了。元素具有属性。(以及获得许多其他X

  • 有没有办法在Docker内部运行LXD?eg. 在使用ubuntu 16.04的主机上: 在容器中: LXD守护进程可以工作,但由于cgroups错误,我无法启动LXD容器。 我也尝试过:

  • 问题内容: 我正在尝试为旧框架实施一些单元测试。我正在尝试模拟数据库层。不幸的是,我们的框架有些陈旧,没有很好地使用最佳实践,因此没有明确的关注点分离。我有点担心尝试模拟数据库层可能会使JVM加载大量甚至无法使用的类。 我不太了解类加载器,所以这可能不是问题。是否有办法在一个特定的ClassLoader加载的所有类中发挥最大作用,以证明引擎盖下发生了什么? 问题答案: 警告使用 将产生巨大的产出。

  • 我们正在考虑从MySQL迁移到AWS Aurora。我们正在为开发人员运行vagrant,因此每个虚拟盒子都有自己的mysql实例。有没有办法在本地运行极光?如果不是,处理这种情况的最佳方法是什么?