cpoolclass.java

来自「linux下建立JAVA虚拟机的源码KAFFE」· Java 代码 · 共 73 行

JAVA
73
字号
// Copyright (c) 1997  Per M.A. Bothner.// This is free software;  for terms and warranty disclaimer see ./COPYING.package gnu.bytecodecvssnap;import java.io.*;/** A CONSTANT_Class entry in the constant pool. */public class CpoolClass extends CpoolEntry {  CpoolUtf8 name;  CpoolClass () { }  CpoolClass (ConstantPool cpool, int hash, CpoolUtf8 n)  {    super (cpool, hash);    name = n;  }  public int getTag() { return ConstantPool.CLASS; }  public final CpoolUtf8 getName()  {    return name;  }  /** Get name of the class as a String. */  public final String getStringName()  {    return name.string;  }  /** Get corresponding ObjectType (ClassType or ArrayType). */  public final ObjectType getClassType ()  {    String name = this.name.string;    if (name.charAt (0) == '[')      return (ObjectType)Type.signatureToType (name);    else      return ClassType.make (name.replace ('/', '.'));  }    final static int hashCode (CpoolUtf8 name)  {    return name.hashCode() ^ 0xF0F;  }  public int hashCode ()  {    if (hash == 0)      hash = hashCode(name);    return hash;  }  void write (DataOutputStream dstr) throws java.io.IOException  {    dstr.writeByte (ConstantPool.CLASS);    dstr.writeShort (name.index);  }  public void print (ClassTypeWriter dst, int verbosity)  {    if (verbosity == 1)      dst.print("Class ");    else if (verbosity > 1)      {	dst.print("Class name: ");	dst.printOptionalIndex(name);      }    dst.print(name.string.replace('/', '.'));  }}

⌨️ 快捷键说明

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