how to get the type info from this small code snippet?

"Hiller, Dean D \(Dean\)" <[email protected]>
Newsgroups gmane.comp.jakarta.bcel.user
Message-ID <676171B29CCEA84FBE05EEA11935AE6305D7603A@cof110avexu1.global.avaya.com>
 

package mod.fieldrefdepend;
import mod.dummy.DummyClass;
public class ClassDependsOnReferenceInFieldDeclaration {
            private Class c = DummyClass.class; 
}

Anyone know how to process the ConstantPool or the instruction code to
find out DummyClass.class is used in this context(ie. Class c =
DummyClass.class).  I don't care about other contexts.

Thanks,

dean

Here is the constant pool and byte code from my logs that I print out

   class=mod.fieldrefdepend.ClassDependsOnReferenceInFieldDeclaration
 
const[1]=java.lang.Class.forName(Ljava/lang/String;)Ljava/lang/Class;
inst=org.apache.bcel.classfile.ConstantMethodref
      const[2]=java.lang.ClassNotFoundException
inst=org.apache.bcel.classfile.ConstantClass
      const[3]=java.lang.NoClassDefFoundError
inst=org.apache.bcel.classfile.ConstantClass
      const[4]=java.lang.ClassNotFoundException.getMessage
()Ljava/lang/String; inst=org.apache.bcel.classfile.ConstantMethodref
      const[5]=java.lang.NoClassDefFoundError.<init>
(Ljava/lang/String;)V inst=org.apache.bcel.classfile.ConstantMethodref
      const[6]=java.lang.Object.<init> ()V
inst=org.apache.bcel.classfile.ConstantMethodref
 
const[7]=mod.fieldrefdepend.ClassDependsOnReferenceInFieldDeclaration.cl
ass$mod$dummy$DummyClass Ljava/lang/Class; 
      const[8]="mod.dummy.DummyClass"
inst=org.apache.bcel.classfile.ConstantString
 
const[9]=mod.fieldrefdepend.ClassDependsOnReferenceInFieldDeclaration.cl
ass$ (Ljava/lang/String;)Ljava/lang/Class; 
 
const[10]=mod.fieldrefdepend.ClassDependsOnReferenceInFieldDeclaration.c
Ljava/lang/Class; inst=org.apache.bcel.classfile.ConstantFieldref
 
const[11]=mod.fieldrefdepend.ClassDependsOnReferenceInFieldDeclaration
inst=org.apache.bcel.classfile.ConstantClass
      const[12]=java.lang.Object
inst=org.apache.bcel.classfile.ConstantClass
      const[13]=c inst=org.apache.bcel.classfile.ConstantUtf8
      const[14]=Ljava/lang/Class;
inst=org.apache.bcel.classfile.ConstantUtf8
      const[15]=class$mod$dummy$DummyClass
inst=org.apache.bcel.classfile.ConstantUtf8
      const[16]=Synthetic inst=org.apache.bcel.classfile.ConstantUtf8
      const[17]=<init> inst=org.apache.bcel.classfile.ConstantUtf8
      const[18]=()V inst=org.apache.bcel.classfile.ConstantUtf8
      const[19]=Code inst=org.apache.bcel.classfile.ConstantUtf8
      const[20]=LineNumberTable
inst=org.apache.bcel.classfile.ConstantUtf8
      const[21]=LocalVariableTable
inst=org.apache.bcel.classfile.ConstantUtf8
      const[22]=this inst=org.apache.bcel.classfile.ConstantUtf8
 
const[23]=Lmod/fieldrefdepend/ClassDependsOnReferenceInFieldDeclaration;
inst=org.apache.bcel.classfile.ConstantUtf8
      const[24]=class$ inst=org.apache.bcel.classfile.ConstantUtf8
      const[25]=(Ljava/lang/String;)Ljava/lang/Class;
inst=org.apache.bcel.classfile.ConstantUtf8
      const[26]=x1 inst=org.apache.bcel.classfile.ConstantUtf8
      const[27]=Ljava/lang/ClassNotFoundException;
inst=org.apache.bcel.classfile.ConstantUtf8
      const[28]=x0 inst=org.apache.bcel.classfile.ConstantUtf8
      const[29]=Ljava/lang/String;
inst=org.apache.bcel.classfile.ConstantUtf8
      const[30]=SourceFile inst=org.apache.bcel.classfile.ConstantUtf8
      const[31]=ClassDependsOnReferenceInFieldDeclaration.java
inst=org.apache.bcel.classfile.ConstantUtf8
      const[32]=java.lang.Class
inst=org.apache.bcel.classfile.ConstantClass
      const[33]=forName (Ljava/lang/String;)Ljava/lang/Class;
inst=org.apache.bcel.classfile.ConstantNameAndType
      const[34]=java/lang/ClassNotFoundException
inst=org.apache.bcel.classfile.ConstantUtf8
      const[35]=java/lang/NoClassDefFoundError
inst=org.apache.bcel.classfile.ConstantUtf8
      const[36]=getMessage ()Ljava/lang/String;
inst=org.apache.bcel.classfile.ConstantNameAndType
      const[37]=<init> (Ljava/lang/String;)V
inst=org.apache.bcel.classfile.ConstantNameAndType
      const[38]=<init> ()V
inst=org.apache.bcel.classfile.ConstantNameAndType
      const[39]=class$mod$dummy$DummyClass Ljava/lang/Class;
inst=org.apache.bcel.classfile.ConstantNameAndType
      const[40]=mod.dummy.DummyClass
inst=org.apache.bcel.classfile.ConstantUtf8
      const[41]=class$ (Ljava/lang/String;)Ljava/lang/Class;
inst=org.apache.bcel.classfile.ConstantNameAndType
      const[42]=c Ljava/lang/Class;
inst=org.apache.bcel.classfile.ConstantNameAndType
 
const[43]=mod/fieldrefdepend/ClassDependsOnReferenceInFieldDeclaration
inst=org.apache.bcel.classfile.ConstantUtf8
      const[44]=java/lang/Object
inst=org.apache.bcel.classfile.ConstantUtf8
      const[45]=java/lang/Class
inst=org.apache.bcel.classfile.ConstantUtf8
      const[46]=forName inst=org.apache.bcel.classfile.ConstantUtf8
      const[47]=getMessage inst=org.apache.bcel.classfile.ConstantUtf8
      const[48]=()Ljava/lang/String;
inst=org.apache.bcel.classfile.ConstantUtf8
      const[49]=(Ljava/lang/String;)V
inst=org.apache.bcel.classfile.ConstantUtf8


      method=<init>
         method ret type=void
         instr=aload_0[42](1)
         instr=invokespecial[183](3) 6
         instr=aload_0[42](1)
         instr=getstatic[178](3) 7
         instr=ifnonnull[199](3) -> getstatic 7
         instr=ldc[18](2) 8
         instr=invokestatic[184](3) 9
         instr=dup[89](1)
         instr=putstatic[179](3) 7
         instr=goto[167](3) -> putfield 10
         instr=getstatic[178](3) 7
         instr=putfield[181](3) 10
         instr=return[177](1)
      method=class$
         method ret type=Class
         method param[0]=String
         instr=aload_0[42](1)
         instr=invokestatic[184](3) 1
         instr=areturn[176](1)
         instr=astore_1[76](1)
         instr=new[187](3) 3
         instr=dup[89](1)
         instr=aload_1[43](1)
         instr=invokevirtual[182](3) 4
         instr=invokespecial[183](3) 5
         instr=athrow[191](1)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.