constantfieldrefinfo.java

来自「本人根据自己的实际情况」· Java 代码 · 共 60 行

JAVA
60
字号
/**
 *
 */
package gen.info.constant;

import gen.ClassFile;
import java.io.DataOutputStream;
import java.io.IOException;

/**
 * @author liuyi
 *
 */
public class ConstantFieldrefInfo extends CpInfo {
    
    /** index of constant pool, referring to ConstantClassInfo */
    private short classIndex;
    
    /** index of constant pool, referring to COnstantNameAndTypeInfo */
    private short nameAndTypeIndex;
    
    /**
     * @param tag
     */
    public ConstantFieldrefInfo(ClassFile classFile) {
        super(CONSTANT_Fieldref, classFile);
    }
    
    public void setClassIndex(int index){
        this.classIndex = (short)index;
    }
    
    public void setNameAndTypeIndex(int index){
        this.nameAndTypeIndex = (short)index;
    }
    
    public short getClassIndex(){
        return this.classIndex;
    }
    
    public short getNameAndTypeIndex(){
        return this.nameAndTypeIndex;
    }
    
    public String getRefString(){
        return classFile.getByPoolIndex(classIndex).getRefString() 
                    + "." + classFile.getByPoolIndex(nameAndTypeIndex).getRefString();
    }
    
    public String toString(){
        return "const #" + index + " = Field\t#" + classIndex + ".#" + nameAndTypeIndex + ";\t// " + getRefString();
    }
    
    public void toBinary(DataOutputStream writer) throws IOException{
        writer.writeByte(tag);
        writer.writeShort(classIndex);
        writer.writeShort(nameAndTypeIndex);
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?