标签: bytecode-manipulation

修改字节代码以使方法返回true

我有类文件有这样的方法:

public boolean validate(String str) {}
Run Code Online (Sandbox Code Playgroud)

这个验证方法中有很多代码,但我只想让它总是返回true或false.有人能指出我如何修改类文件来实现这一目标吗?

bytecode classloader bytecode-manipulation java-compiler-api

1
推荐指数
1
解决办法
1810
查看次数

Obj C相当于Double.doubleToLongBits

我正在将一些Java代码移植到Objective C并且知道得足以让人头疼.有人能指出我对等于Double.doubleToLongBits和Float.floatToIntBits的objC吗?

java objective-c bytecode-manipulation

0
推荐指数
1
解决办法
715
查看次数

Java字节码操作和Java反射API?

我最近遇到了"字节码操作"这个术语(为了研究这个问题,我在看到使用Hibernate的应用程序中的日志的同时看到了字节码提供程序).我也知道(有点)Java Reflection API.

这两个概念是否相似?他们之间有什么区别?什么时候用哪个?

java reflection bytecode-manipulation javassist

0
推荐指数
1
解决办法
2067
查看次数

如何在 ASM 中获取引用?

总结:使用 ASM,给定一个字节码类,对于每个方法指令(MethodInsnNode),我需要获取正在使用的引用。

考虑以下类:

public void myMethod(){
String str1 = "str12";
String str2 = str1;
String str3 = "str3";
Boolean myBool = true;
Boolean myBool2 = true;
Cemo cemo = new Cemo();
assertTrue(cemo.isTrue());

assertTrue(cemo.isTrue());
Run Code Online (Sandbox Code Playgroud)

}

考虑以下生成的字节码指令:

Code:
   0: aload_0
   1: invokespecial #1                  // Method java/lang/Object."<init>":()V
   4: return



public void myMethod();
    Code:
       0: ldc           #2                  // String str12
       2: astore_1
       3: aload_1
       4: astore_2
       5: ldc           #3                  // String str3
       7: astore_3
       8: iconst_1
       9: invokestatic  #4                  // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean; …
Run Code Online (Sandbox Code Playgroud)

java bytecode bytecode-manipulation java-bytecode-asm jvm-bytecode

0
推荐指数
1
解决办法
747
查看次数

如何替换方法返回类型?

这只是一个有趣的学习实验.我正在bytecode操纵着.

我只是瞎搞与学习asmjava.我想知道是否可以从接口替换方法的返回类型.

假设我有一个interface:

interface Modifiable {
    Integer a();
}
Run Code Online (Sandbox Code Playgroud)

我应该创建一个类的副本,将其加载到class loader,然后修改这个新的接口?

如果可能,这个更改将在编译时提供?可以这么说,我ide自动完成了那些新方法.

java bytecode-manipulation java-bytecode-asm

-1
推荐指数
1
解决办法
215
查看次数