本文整理汇总了Java中com.sun.tools.classfile.ConstantPool.CPRefInfo类的典型用法代码示例。如果您正苦于以下问题:Java CPRefInfo类的具体用法?Java CPRefInfo怎么用?Java CPRefInfo使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
CPRefInfo类属于com.sun.tools.classfile.ConstantPool包,在下文中一共展示了CPRefInfo类的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: verifyDefaultBody
import com.sun.tools.classfile.ConstantPool.CPRefInfo; //导入依赖的package包/类
void verifyDefaultBody(String classFile) {
String workDir = System.getProperty("test.classes");
File file = new File(workDir, classFile);
try {
final ClassFile cf = ClassFile.read(file);
for (Method m : cf.methods) {
Code_attribute codeAttr = (Code_attribute)m.attributes.get(Attribute.Code);
for (Instruction instr : codeAttr.getInstructions()) {
if (instr.getOpcode() == Opcode.INVOKESPECIAL) {
int pc_index = instr.getShort(1);
CPRefInfo ref = (CPRefInfo)cf.constant_pool.get(pc_index);
String className = ref.getClassName();
if (className.equals("BaseInterface"))
throw new IllegalStateException("Must not directly refer to TestedInterface");
}
}
}
} catch (Exception e) {
e.printStackTrace();
throw new Error("error reading " + file +": " + e);
}
}