package com.coderising.jvm.constant; import java.util.ArrayList; import java.util.List; public class ConstantPool { private List<ConstantInfo> cl = new ArrayList<ConstantInfo>(); public void addConstantInfo(ConstantInfo e){ cl.add(e); } public ConstantInfo getConstantInfo(int index) { return cl.get(index); } public int getSize() { return cl.size() - 1;// 减去常量池的长度一项 } public String getUTF8String(int nameIndex) { return ((UTF8Info)getConstantInfo(nameIndex)).getValue(); } public String print(){ StringBuffer sb = new StringBuffer(); for (int i = 0; i < cl.size(); i++) { ConstantInfo c = cl.get(i); if(i<10){ System.out.print("0"+i+". "); }else{ System.out.print(i+". "); } c.print(); } return sb.toString(); } }