追溯性地向方法添加Java注释?

2023-11-29

有没有办法修改 .class 文件以便向某些方法添加 Java 注释?基本上我想遍历 jar 文件中每个类文件的方法并注释某些方法。请注意,这不是在使用 jar 文件时的运行时。相反,完成后我想用注释修改类文件。

我确实可以访问源代码,所以如果有自动源代码修改器,那也可以......

我假设我需要一个工具,例如Java助手 or ASM。如果是这样,我应该使用哪一个以及我将如何处理?


实际上,这是 AspectJ 的一个经典用例:

declare @method : public * BankAccount+.*(..) : @Secured(role="supervisor")

虽然我承认直接字节码操作更强大,但 AspectJ 对用户更加友好,并且当您做错事时它会立即向您发出编译器警告。

另外,如果您使用加载时间编织,您可以保持原始库 jar 不变,因为编织发生在类加载时。

参考:

  • 声明注解
  • AspectJ 的实际应用 (book)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

追溯性地向方法添加Java注释? 的相关文章

  • 如何将变量的全部内容发送/导出到文本文件/xml 文件/剪贴板?

    我想将实例的内容 最好以树形形式 发送给某人 打印屏幕是不行的 因为类太复杂了 您需要将输出转回实例吗 在这种情况下 其他答案都是正确的 如果您只想手动检查实例的内容 理想情况下您的类都将实现toString 你可以将其重定向到一个文件 如
  • ScheduledThreadPoolExecutor如何在特定时间运行任务?

    特别是 它是否像这样在内部实现了 while true 循环 while System currentTimeMillis lt timeToRunTask Thread sleep 1000 doTask From http grepco
  • android.view.InflateException:二进制 XML 文件行 #11:膨胀类 ImageView 时出错

    我只是尝试制作一个小的 android java xml 应用程序来计算游戏的分数 它给了我这个错误 Error inflateing class ImageView 有人知道解决方案吗 我实际上搜索了 ppl 说添加这个 android
  • 单元测试组合服务方法

    我正在为一个类编写 junit 单元测试 该类使用以下方法实现公开的接口 public Set
  • 如何在log4j的配置文件中为文件附加器提供环境变量路径

    我有一个log4j xml配置文件 和一个RollingFileAppender我需要提供用于存储日志的文件路径 问题是我的代码将作为可运行的 jar 部署在 Unix 机器上 所以如果我传递这样的参数 value logs message
  • 如何提取文件 jre-9/lib/modules?

    In JRE 9 lib目录 至少在 Windows 上 有一个名为modules其大小约为107 MB 是否可以提取该文件或在其中列出 java 模块 我可以看到一个名为jmod可以在jdk 9 bin jmod exe 但那是为了阅读
  • Kafka Java Consumer 已关闭

    我刚刚开始使用卡夫卡 我面临着消费者的一个小问题 我用Java写了一个消费者 我收到此异常 IllegalStateException 此消费者已关闭 我在以下行中遇到异常 ConsumerRecords
  • 使用 JAX-WS 的 WebLogic 中没有模式导入的单个 WSDL

    如何使用 JAX WS 配置由 WebLogic 10 3 6 生成的 Web 服务 以将对象架构包含在单个 WSDL 文件声明 而不是导入声明 中 示例代码 界面 import javax ejb Local Local public i
  • java.lang.Object的hashCode具体使用的算法是什么

    中使用的算法是什么JVM实施java lang Object的隐含的hashCode 方法 OpenJDK or Oracle JDK答案中首选 它依赖于实现 并且在很大程度上 该算法是entirely取决于实施 只要它是一致的 但是 根据
  • 更改 JComboBox 中滚动条的大小

    有谁知道如何手动更改 jComboBox 中的滚动条大小 我已经尝试了一大堆东西 但没有任何效果 好吧 我明白了 您可以实现 PopUpMenuListener 并使用它 public void popupMenuWillBecomeVis
  • 如何使用 swagger-codegen-plugin (maven) 生成客户端代码?

    我需要使用 swagger codegen plugin for maven 在 eclipse 中生成服务器存根代码 你能帮忙怎么做吗 以及需要什么配置 在 pom xml 中 我找到了这个答案 您只需要像下面这样更改 pom xml 即
  • Android 解析 JSON 卡在 get 任务上

    我正在尝试解析一些 JSON 数据 我的代码工作了一段时间 我不确定我改变了什么突然破坏了代码 当我运行代码时 我没有收到任何运行时错误或警告 我创建一个新的 AsyncTask 并执行它 当我打电话时 get 在这个新任务中 调试器在此行
  • 多线程——更快的方法?

    我有一堂有吸气剂的课程getInt 和一个二传手setInt 在某个领域 比如说领域 Integer Int 一个类的一个对象 比如说SomeClass The setInt 这里是同步的 getInt isn t 我正在更新的值Int来自
  • 改变 Java 中凯撒移位的方向

    用户可以通过选择 1 向左或 2 向右移动字母来选择向左或向右移动 左边工作正常 右边不行 现在它显示了完全相同的循环 但我已经改变了所有 and 以不同的方式进行标记 最终我总是得到奇怪的字符 如何让程序将字符向相反方向移动 如果用户输入
  • java swing:向 JTree 项目添加自定义图形按钮

    我想在 JTree 中的项目右侧添加一个带有小图标的附加按钮 这可以做到吗 如果是这样 怎么办 thanks Clamp 你在这方面成功了吗 我想做同样的事情 但很难让 JButton 响应用户 设置渲染器以显示按钮的过程很顺利 但所有鼠标
  • 在循环中按名称访问变量

    我正在开发一个 Android 项目 并且有很多可绘制对象 这些绘图的名称都类似于icon 0 png icon 1 png icon 100 png 我想将这些可绘制对象的所有资源 ID 添加到整数 ArrayList 中 对于那些不了解
  • Android项目中使用java获取电脑的IP地址

    我在用ksoap2 android http code google com p ksoap2 android 我需要使用java获取IP地址 这样我就不必每次都手动输入它 我所说的 IP 地址是指 例如 如果我这样做ipconfig使用命
  • 从浏览器访问本地文件?

    您好 我想从浏览器访问系统的本地文件 由于涉及大量安全检查 是否可以通过某种方式实现这一目标 或使用 ActiveX 或 Java Applet 的任何其他工作环境 请帮帮我 要通过浏览器访问本地文件 您可以使用签名的 Java Apple
  • Java:一个函数有多种返回类型...可以使用泛型吗?

    为了简单起见 我有一些程序 如下所示 public String fetchValueAsString String key public DateTime fetchValueAsDateTime String key 我想要类似的东西
  • Android Google 地图无法在当前主题中找到样式“mapViewStyle”

    添加谷歌地图视图时 我扩展了MapView 使用xml编辑器将其添加到活动中 并将我的谷歌地图api密钥手动添加到布局xml文件中 我的权限在清单文件中允许互联网 我想知道的是 在 xml 编辑器中 我收到错误 无法在当前主题中找到样式 m

随机推荐

  • Windows:文件被进程锁定

    是否有另一个 winapi 调用来检测哪些文件被特定锁定 然后使用duplicatehandle和ntquerysysteminformation进行处理 我正在使用重启管理器 api 来注册我正在寻找的文件 但是 不幸的是 重启管理器 a
  • 如何在 GCP BigQuery 联合查询中使用查询参数

    我有一个基于 gcp 的环境 我在 gcp BigQuery 中使用标准 SQL 脚本 并在 cloudsql MySql 中使用联合查询 联合查询从cloudsql mysql数据库中选择数据 我需要根据依赖于 BigQuery 中数据的
  • 我可以使用Environment.GetEnvironmentVariable方法从Azure应用程序设置中读取环境变量吗?

    我正在将 Firebase SDK 添加到服务器 第一步是设置 GOOGLE APPLICATION CREDENTIALS 环境变量 所以我在中设置环境变量Azure 服务 gt 配置 gt 应用程序设置 我检查了环境变量kudu too
  • GNU GCC 编译器错误“main 的多重定义”

    我是 ubuntu 新手 现在我需要用 C 开发我的作业 我正在使用 codeblocks IDE 编写 C 程序 每当我在其中编译某些内容时 都会出现以下错误 multiple definition of main warning con
  • 在循环中使用innerHTML无法正确显示json结果集

    我使用 HTML onclick 事件来调用一个函数 该函数将读取包含 JSON 语法的 Javascript 字符串并输出结果 但仅显示最后一个结果 var resorts skiResorts resortName Afton Alps
  • firebase 逆序排序

    var playersRef firebase database ref team mapping playersRef orderByChild score limitToFirst 7 on child added function d
  • 使用 OU 的部分路径在 Active Directory 中搜索 OU

    AD 查询语法中是否有一种方法可以通过搜索 OU 的部分路径来查找 OU 的完整路径 例如 我的 OU 的完整路径是 OU Clerks OU OfficeA OU Administration DC domain DC local 现在
  • gif 动画在 Chrome 和 Firefox 中仅循环一次

    我有一个 gif 动画 我想在页面加载时随时显示它 当我在浏览器外部查看图像时 图像无限循环并且工作得很好 但每当我在浏览器中显示图像时 动画仅循环一次 有人对让图像无限循环有什么建议吗 目前 我这样做只是为了使图像出现 这确实使它出现 但
  • 在 R 中读取两行标题

    当标题有两行必要的标题时 将文件读入 R 的最佳方法是什么 这种情况经常发生在我身上 因为人们经常使用一行作为列名称 然后在其下面包含另一行作为测量单位 我不想跳过任何事情 我希望将名称和单位保留下来 这是什么具有两个标头的典型文件可能如下
  • 无法使用 gethostbyname() 获取本地 IP

    一位朋友用过以下代码片段检索 LAN 中主机的本地 IP 地址 int buffersize 512 char name buffersize if gethostname name buffersize 1 Exception excep
  • 为什么 deref 强制转换不适用于 `From::from`?

    来自section在书里 Deref 强制转换将引用转换为实现Deref特征转换为对另一种类型的引用 它会自动发生 当我们传递对特定类型值的引用作为参数时 与参数类型不匹配的函数或方法 函数或方法定义 我正在尝试找出两者之间的区别bar a
  • Z3 优化超时

    如何为 z3 优化器设置超时 以便在超时时为您提供最知名的解决方案 from z3 import s Optimize Hard Problem print s check print s model 后续问题 你可以将z3设置为随机爬山还
  • NHibernate 删除 DAL?

    使用 NHibernate 或任何其他 ORM 消除了 DAL 的必要性 我说得对吗 或不 我试图思考如何回答这个问题 但答案是否定的 它不会消除 DAL 的必要性 而不是成为该 DAL 的一部分 毫无疑问 您之前所做的就是访问调用 sql
  • Spring @Bean 与 @Lookup 方法

    我已经利用 Lookup 注释实现了一个 Spring bean 该线程很有帮助 如何使用spring Lookup注解 随后我注意到一种奇怪的行为 我不确定是有意为之还是我自己的误解 Spring 将在使用 Service Compone
  • Android 中的图像内存管理

    这是初学者最常问的问题之一 但不幸的是我仍然无法得到任何帮助 在一个活动中 我有一个 viewflipper 我以编程方式将图像视图分配给它 使用 for 循环将大约 100 个图像添加到 viewflipper 可能是由于图像大小或由于图
  • 基于 redshift 中的自表查找更新表

    我有下表 id email mgr email mgr id 1 email1 email2 2 email2 email3 3 email3 email4 我想通过将 mgr email 与电子邮件匹配来填充 id 列中的 mgr id
  • Android OutOfMemoryError 大图像

    对于尺寸较大的图像 不是按分辨率 该方法会抛出 OutOfMemoryError 我有 12 MP 照片 所有照片的大小都不同 1 5MB 2 5MB 3 2MB 4 1MB 等 所有照片的分辨率都是相同的 4000 x 3000 像素 r
  • 当传递给另一个对象时,谁应该对 IDisposable 对象调用 Dispose?

    是否有关于谁应该致电的指导或最佳实践Dispose 当一次性对象被传递到另一个对象的方法或构造函数时 这里有几个例子来说明我的意思 IDisposable 对象被传递到一个方法中 完成后是否应该释放它 public void DoStuff
  • 使用 AWK 打印 XML 元素

    如何使用 AWK 打印 XML 元素的内容 从开始标记到结束标记 例如 考虑以下 XML
  • 追溯性地向方法添加Java注释?

    有没有办法修改 class 文件以便向某些方法添加 Java 注释 基本上我想遍历 jar 文件中每个类文件的方法并注释某些方法 请注意 这不是在使用 jar 文件时的运行时 相反 完成后我想用注释修改类文件 我确实可以访问源代码 所以如果