腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
(9999+)
视频
沙龙
1
回答
可以
使用
Byte
Buddy
的
高级
API
修改
ASM
的
MethodVisitor
对象
吗
?
我目前正在学习如何为JVM创建Kotlin编译器插件,我想更改一个方法
的
主体作为一个例子,
API
需要
使用
ASM
API
操作Java字节码,以便对类
的
组件进行任何更改。Kotlin编译器插件提供了,例如,如果你想
修改
一个类
的
方法体,你需要重写newMethod函数,它返回一个
MethodVisitor
实例,这是你需要
使用
API
手动
修改
的
实例。我希望这样做不需要编写<
浏览 20
提问于2020-11-14
得票数 0
回答已采纳
1
回答
ByteBuddy拦截对方法字节码中特定类实例
的
调用
、
我有一个带有方法m()
的
类A和一个带有方法n()
的
类B。在A中,我有一个类型为B
的
字段b。在m()中,有一个对b.n()
的
调用。我需要用ByteBuddy
修改
A
的
代码,以便在b.n()调用之前和之后执行一些操作。我需要一些建议/提示/提示来解决这个问题。Radu
浏览 0
提问于2016-05-14
得票数 1
1
回答
如何在“getfield”和“putfield”之前收集有关字节码指令
的
信息?
、
、
我用
的
是字节好友maven插件。我需要遍历构造函数和方法代码,并在“getfield”和“putfield”指令之前收集有关字节码指令
的
信息。我怎么能这么做?我知道MemberSubstitution,但我需要用字段名调用实用程序类
的
静态方法。com.mycompany.mylib; import java.lang.reflect.Method; import net.bytebuddy.
asm
.MemberSubstitutionString.class, Ob
浏览 6
提问于2022-01-24
得票数 1
1
回答
可以
使用
ByteBuddy
的
建议访问本地变量
吗
?
、
、
当
使用
@Advice截取方法
的
实现时,是否
可以
访问局部变量?
浏览 4
提问于2017-01-20
得票数 4
回答已采纳
2
回答
为什么
Buddy
缺少一个与操作码存储区相对应
的
StackManipulation实现?
、
、
如果它
的
缺失是因为字节伙伴
的
目标是方法委托域,那么我
可以
提供这样一个场景,在这个场景中,这个特性是必要
的
: return reducer.reduce((Integer) params[0], (Integer) params[8]);上面的代码将为下行语句生成ASTORE
的
指令
浏览 4
提问于2014-09-12
得票数 3
回答已采纳
1
回答
如何在Java上重新定义已定义
的
类
、
在下面的代码中调用newTarget.a ()和newTarget.b ()时,我希望应用已调制
的
ASM
类,以便如下所示import org.objectweb.
asm
.
MethodVisitor
; import org.objectweb.
asm
.Opcodes/
浏览 1
提问于2017-02-02
得票数 0
回答已采纳
1
回答
Byte
Buddy
可以
访问方法
的
局部变量名
吗
?
、
、
、
假设我有一个m方法 String foo = "foo"; doSomething(foo, bar);我想
使用
ByteBuddy来检测代码,这样当在m中调用doSomething时,它会自动将foo和bar
的
值放入一个HashMap中,类似于: String foo = "foo";new code injected context.put("bar", bar);
浏览 4
提问于2015-01-11
得票数 7
1
回答
使用
Java代理只快速转换一个类
、
、
、
、
我想测量服务器
的
启动时间,而不会产生很大
的
开销。例如,我想测量一个简单
的
Netty服务器
的
启动时间。即从启动到准备接受请求
的
时间。因此,在考虑启动时间时,字节伙伴Java代理似乎有
浏览 1
提问于2018-01-03
得票数 0
1
回答
字节伙伴
可以
用作收集[field]/[method return]值作为集合或映射
的
非反射方式
吗
?
、
我试图找到有用
的
答案,但没有运气。我想知道是否
可以
使用
byte
-
buddy
来执行以下操作:假设我们有一个包含多个值
的
POJO。对于某些特定类型
的
处理,我只对其中一些感兴趣。
使用
反射
可以
做到这一点,但它
的
性能不是很好。我希望我
可以
使用
byte
伙伴通过接口和实现方法来扩展类,但我并没有真正找到如何构造实现来实现这一点。
对象
,但是基于此,我
可以
浏览 0
提问于2019-04-15
得票数 3
2
回答
任务执行失败:app:transformClassesWithDexForDebug‘返回dex进程
的
代码1
、
、
、
使用
Asm
注入类all方法转换
api
获取所有类fis = newFileInputStream(file)println "injectFile: ${file.path}"fos.write(byt
浏览 5
提问于2017-04-10
得票数 1
1
回答
将字节码中出现
的
类型替换为ByteBuddy
、
、
、
、
有没有可能用ByteBuddy替换字节码中
的
某种类型
的
实例?例如,如果我有一门课 Foo makeFoo() { }我想转换这个类
的
字节码,这样它就等同于class MyClass { return new Bar(); } 也就是说,用Bar替换所有出现
的
Foo。
浏览 10
提问于2016-12-15
得票数 0
1
回答
模拟静态初始化程序抛出ExceptionInInitializerError
的
类
、
、
、
我有一个场景,我需要从未知
的
源加载类并实例化它们以进行模拟--我不需要运行代码,但是方法和属性必须在结果实例中。我还需要保持类名不变,因此
可以
将它
的
实例分配给其他类型已经加载
的
类中
的
字段。:
使用
ByteBuddy创建失败类
的
子类--
使用
NoClassDefFoundError失败,可能是因为超类处于错误状态。当
使用
ByteBuddy
的
代理加载该类时,
修改
该类
的
静态初始化程序并将其
浏览 1
提问于2021-02-18
得票数 0
1
回答
当通过检测字节码调用类
的
静态方法时,NoClassDefFoundError
、
无论何时分配
对象
,但遇到问题时,我都试图调用静态方法。我已经将我
的
代码简化为小
的
工作示例。classWriter) { } public
MethodVisitor
visitMethod(final intOpcodes.INVOKESTATIC, "com/chasingnanos/Callback", "onAllocation", "()V&qu
浏览 3
提问于2017-03-07
得票数 0
回答已采纳
2
回答
ASM
在说明之前先看看maxStack?
、
、
我正在尝试
使用
ASM
库将字节码转换成不同
的
格式,这
可以
用
MethodVisitor
来完成,就像下面这个简单
的
测试代码: return new
MethodVisitor
(
ASM
7) {System.out.println(maxStack); }; 一个问题是,我只能在实际指令之后看到maxStack -我已经测试过了,这就是调用方法
的
顺序
浏览 47
提问于2020-01-23
得票数 3
回答已采纳
2
回答
使用
ASM
监控java.lang.ProcessBuilder
、
、
、
我希望
使用
ASM
工具创建一个监视器来记录对java.lang.ProcessBuilder
的
调用。然而,我
的
尝试似乎失败了。下面是一些示例代码。基本上,这段代码只是将一个nop添加到java.lang.ProcessBuilder
的
构造函数中,然后将新
的
(和原始
的
)类文件写入
修改
后
的
类目录。这完全是为了测试,因为我想确保一切工作正常,并且我
可以
在运行代理之外检查更改后
的
字节码。如果我将此示例代码指向
浏览 1
提问于2015-01-17
得票数 0
1
回答
基于
ASM
字节码变换
的
java.lang.instrument栈溢出错误
、
、
、
我对Java代理插装和
ASM
字节码插装很陌生。我从获取代码,并
使用
进行javagent测试。public class Instrumenter { public MethodAdapter(final
Metho
浏览 0
提问于2019-03-18
得票数 2
回答已采纳
1
回答
基于方法字节码
的
ByteBuddy ElementMatcher
、
虽然ByteBuddy有一个非常好
的
应用程序接口,但我想知道它是否适合我
的
用例,或者我是否应该更好地坚持低级
的
ASM
。我需要
的
可能是某种类型
的
ElementMatcher,如果一个方法包含某个可配置
的
字节代码(例如PUTSTATIC),它将返回匹配。对于所有匹配
的
方法,我想在方法
的
开头编入额外
的
代码。作为一种变通办法,我当然
可以
使用
ASM
预先扫描字节码,构建一些元
浏览 15
提问于2017-01-24
得票数 1
回答已采纳
1
回答
用
Buddy
拦截Object.class toString()方法
我正在
使用
Buddy
来拦截一些JDK方法,System.class和Thread.class很好,但是没有在java.lang.Object上工作。我正在JDK8上运行我
的
测试,它不会抛出任何错误。return builder.method(ElementMatchers.named("toString")).intercept(FixedValue.value("HELLO
BYTE
BUDDY
!"))Javassist,转换java.lang.Object
浏览 5
提问于2020-09-01
得票数 1
回答已采纳
2
回答
为什么不叫我
的
“探视员”?
、
、
、
、
我将把我
的
代码添加到这篇文章
的
末尾。假设我希望
使用
B从生成类byteBuddy。但正如您在中所看到
的
,
使用
“纯”字节伙伴代码有一些不便之处。最重要
的
是, 如果您确实需要创建带有跳转指令
的
字节代码,请确保
使用
ASM
添加正
浏览 0
提问于2018-02-22
得票数 2
回答已采纳
1
回答
如何
使用
ASM
4.0
修改
Java字节码
、
、
我是
ASM
框架
的
新手。我已经围绕这个
ASM
框架工作了一个星期。我在网上看到了关于解析类和从头开始生成.class文件
的
教程。但无法跟踪如何
修改
ASM
中
的
现有类。我无法跟踪ClassVisitor、ClassWriter和ClassReader之间
的
执行流程。 c.showOne(); c.sh
浏览 1
提问于2014-08-29
得票数 10
回答已采纳
点击加载更多
相关
资讯
初探 Java agent
最新版Byte Buddy完全支持Java 11
有赞全链路追踪实践
IAST安全测试如何防止数据污染
教妹子学序列化kryo的经历
热门
标签
更多标签
云服务器
ICP备案
实时音视频
对象存储
即时通信 IM
活动推荐
运营活动
广告
关闭
领券