staticfieldrecord.java

来自「专业汽车级嵌入式操作系统OSEK的源代码」· Java 代码 · 共 60 行

JAVA
60
字号
package js.tinyvm;import java.io.IOException;import js.tinyvm.io.IByteWriter;import org.apache.bcel.classfile.Field;public class StaticFieldRecord implements WritableData{   ClassRecord iClassRecord;   Field iField;   public StaticFieldRecord (Field aEntry, ClassRecord aRec)   {      iField = aEntry;      iClassRecord = aRec;   }   public String getName ()   {      return iField.getName();   }   public int getLength ()   {      return 2;   }   public void dump (IByteWriter aOut) throws TinyVMException   {      TinyVMType type = TinyVMType.tinyVMType(iField.getType());      int pOffset = iClassRecord.getStaticFieldOffset(iField.getName());      assert pOffset >= 0 && pOffset <= 0x0FFF: "Check offset in range";      try      {         aOut.writeU2((type.type() << 12) | pOffset);      }      catch (IOException e)      {         throw new TinyVMException(e.getMessage(), e);      }   }   public boolean equals (Object aOther)   {      if (!(aOther instanceof StaticFieldRecord))         return false;      return ((StaticFieldRecord) aOther).iField.equals(iField)         && ((StaticFieldRecord) aOther).iClassRecord.equals(iClassRecord);   }   public int hashCode ()   {      return iField.hashCode();   }}

⌨️ 快捷键说明

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