我已经重写了这个问题(问题仍然是相同的,只是背景噪音较小),希望能够减少针对所有错误事物的混淆 - 由于这一点,下面的一些评论似乎脱离了背景.
分析Java字节码,找到作为给定Java字节码指令的参数给出的所有可能的引用类型的最简单方法是什么?我对引用的类型感兴趣,也就是说,给定的putfield指令将接收一个Integer,或者它可能会收到一个Integer或Float等.
例如,考虑以下代码块:
0: aload_1
1: invokestatic #21; //Method java/lang/Integer.valueOf:(Ljava/lang/String;)Ljava/lang/Integer;
4: astore_2
5: aload_2
6: ifnull 17
9: aload_0
10: aload_2
11: putfield #27; //Field value:Ljava/lang/Number;
14: goto 25
17: aload_0
18: iconst_0
19: invokestatic #29; //Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
22: putfield #27; //Field value:Ljava/lang/Number;
25: return
Run Code Online (Sandbox Code Playgroud)
我们可以推断pc 11上的putfield指令将接收ref类型的Integer.
0: aload pushes ref type of String (the method param)
1: invokestatic pops the ref type and pushes a ref type of Integer (invoked method return type)
4: astore …Run Code Online (Sandbox Code Playgroud) 有没有人知道生成随机2D人脸的免费库组件?
搜索时,我想出了FaceGen然而它不是免费的,所以它不会这样做.
理想情况下,我在寻找Java中的东西,但如果许可允许,我可以将它移植到Java.我真的不需要任何超级复杂的东西,也不需要非常可参数化的东西,只是吐出静止2D图像的东西.