package me.lzb.jvm.constant; import me.lzb.jvm.print.Print; import me.lzb.jvm.print.PrintVisitor; /** * Created by LZB on 2017/4/14. */ public abstract class ConstantInfo implements Print { public static final String MAGIC_NUMBER = "cafebabe"; public static final int Class_info = 7; public static final int Fieldref_info = 9; public static final int Methodref_info = 10; public static final int String_info = 8; public static final int NameAndType_info = 12; public static final int Utf8_info = 1; protected ConstantPool constantPool; public ConstantInfo() { } public ConstantInfo(ConstantPool pool) { this.constantPool = pool; } public ConstantPool getConstantPool() { return constantPool; } public ConstantInfo getConstantInfo(int index) { return this.constantPool.getConstantInfo(index); } public abstract int getType(); @Override public abstract void print(PrintVisitor visitor); }