Slide 63
Slide 63 text
クラスファイルの書き込み
Hello, World!
byte[] classBytes
= ClassFile.of().build(
ClassDesc.of("Hello"),
builder -> builder.withFlags(ClassFile.ACC_PUBLIC)
.withMethod(INIT_NAME, MTD_void, ClassFile.ACC_PUBLIC,
mb -> mb.withCode(
cob -> cob.aload(0)
.invokespecial(CD_Object, INIT_NAME, MTD_void)
.return_()))
.withMethod("main", MethodTypeDesc.of(CD_void, ClassDesc.of("java.lang.String").arrayType()),
ClassFile.ACC_PUBLIC + ClassFile.ACC_STATIC,
mb -> mb.withCode(
cob -> cob.getstatic(ClassDesc.of("java.lang.System"), "out",
ClassDesc.of("java.io.PrintStream"))
.ldc("Hello, World!")
.invokevirtual(ClassDesc.of("java.io.PrintStream"), "println",
MethodTypeDesc.of(CD_void, ClassDesc.of("java.lang.String")))
.return_()))
);