Download Jar. Uses 755K of libraries. Compilation Failed (5098L/24K).
!7 set flag AllPublic. lib 1400554 // javassist import javassist.CtClass; import javassist.CtClassType; import javassist.bytecode.*; p { ClassFile cf = new ClassFile(false, "User123", null); cf.setInterfaces(new S[] { className(IF1) }); var cp = cf.getConstPool(); // add default constructor MethodInfo mi = new MethodInfo(cp, "<init>", Descriptor.ofConstructor(new CtClass[0])); var code = new Bytecode(cp, 1, 0); CtClass ctSuperclass = new CtClassType("java/lang/Object", cp); code.addInvokespecial(ctSuperclass, "<init>", Descriptor.ofConstructor(new CtClass[0])); code.addReturn(null); code.setMaxLocals(1); mi.setCodeAttribute(code.toCodeAttribute()); cf.addMethod(mi); byte[] bytes = bytesFromDataOutputStream(stream -> cf.write(stream)); var cl = new InMemoryClassLoader(myClassLoader()); Class<? extends IF1> c = cast cl.defineAClass("User123", bytes); print(c); IF1 f = newInstance(c); print(f); }
Began life as a copy of #1034295
download show line numbers debug dex old transpilations
Travelled to 3 computer(s): bhatertpkbcr, mowyntqkapby, mqqgnosmbjvj
No comments. add comment
Snippet ID: | #1034298 |
Snippet name: | Test Javassist (bytecode level API, dev.) |
Eternal ID of this version: | #1034298/12 |
Text MD5: | 9e93f325028ddeb4458863dfb986c26c |
Transpilation MD5: | 7c91b5a698a1c60f398356804d70840b |
Author: | stefan |
Category: | javax |
Type: | JavaX source code (desktop) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2022-02-01 15:34:19 |
Source code size: | 997 bytes / 35 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 220 / 699 |
Version history: | 11 change(s) |
Referenced in: | #1034300 - Test making class from scratch with BCEL [OK!] |