org.objectweb.asm.tree.ClassNode.visitField()方法的使用及代码示例

x33g5p2x  于2022-01-18 转载在 其他  
字(4.2k)|赞(0)|评价(0)|浏览(97)

本文整理了Java中org.objectweb.asm.tree.ClassNode.visitField()方法的一些代码示例,展示了ClassNode.visitField()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ClassNode.visitField()方法的具体详情如下:
包路径:org.objectweb.asm.tree.ClassNode
类名称:ClassNode
方法名:visitField

ClassNode.visitField介绍

暂无

代码示例

代码示例来源:origin: robolectric/robolectric

@Override
public FieldVisitor visitField(
  int access, String name, String desc, String signature, Object value) {
 desc = config.remapParamType(desc);
 return super.visitField(access & ~Opcodes.ACC_FINAL, name, desc, signature, value);
}

代码示例来源:origin: org.robolectric/robolectric-sandbox

@Override
public FieldVisitor visitField(int access, String name, String desc, String signature, Object value) {
 desc = remapParamType(desc);
 return super.visitField(access, name, desc, signature, value);
}

代码示例来源:origin: CalebWhiting/java-asm-obfuscator

@Override
public void transform(Map<String, ClassNode> classMap) {
  stringList = new ArrayList<>();
  do {
    unscrambleClass = (ClassNode) classMap.values().toArray()[new Random().nextInt(classMap.size())];
  } while ((unscrambleClass.access & Opcodes.ACC_INTERFACE) != 0);
  // Build string list
  log.debug("Building string list");
  classMap.values().stream().flatMap(cn -> cn.methods.stream()).forEach(this::buildStringList);
  Collections.shuffle(stringList);
  // Replace LDC constants with calls to unscramble
  log.debug("Scrambling LDC constants");
  classMap.values().forEach(cn -> cn.methods.forEach(mn -> scramble(cn, mn)));
  // Add unscrambling handler
  log.debug("Creating {} field containing {} strings", FIELD_NAME, stringList.size());
  unscrambleClass.visitField(ACC_PUBLIC | ACC_STATIC, FIELD_NAME, "[Ljava/lang/String;", null, null);
  log.debug("Adding unscramble method to {}.{}{}", unscrambleClass.name, CALL_NAME, CALL_DESC);
  createUnscramble();
  try {
    createStaticConstructor(unscrambleClass);
  } catch (Exception ex) {
    log.warn("Failed to transform strings", ex);
  }
}

代码示例来源:origin: RS485/LogisticsPipes

reader.accept(node, 0);
node.interfaces.add("logisticspipes/asm/te/ILPTEInformation");
node.visitField(Opcodes.ACC_PRIVATE, "informationObjectLogisticsPipes", "Llogisticspipes/asm/te/LPTileEntityObject;", null, null);
for (MethodNode m : node.methods) {
  if (m.name.equals("validate") || m.name.equals("func_145829_t") || (m.name.equals("t") && m.desc.equals("()V"))) {

代码示例来源:origin: ItzSomebody/Radon

fv = cw.visitField(ACC_PRIVATE + ACC_STATIC, memberNames.cacheFieldName, "Ljava/util/HashMap;",
    null, null);
fv.visitEnd();

代码示例来源:origin: RS485/LogisticsPipes

FieldVisitor fv = node.visitField(Opcodes.ACC_PUBLIC, "lpRoutingInformation", "Ljava/lang/Object;", null, null);
fv.visitEnd();

代码示例来源:origin: ItzSomebody/Radon

fv = cw.visitField(ACC_PRIVATE + ACC_STATIC + ACC_VOLATILE, memberNames.infoFieldName,
    "[Ljava/lang/Object;", null, null);
fv.visitEnd();
fv = cw.visitField(ACC_PRIVATE + ACC_STATIC, memberNames.cacheFieldName, "Ljava/util/HashMap;",
    null, null);
fv.visitEnd();

代码示例来源:origin: ItzSomebody/Radon

fv = cw.visitField(ACC_PRIVATE + ACC_STATIC, memberNames.cacheFieldName, "Ljava/util/HashMap;", null, null);
fv.visitEnd();
fv = cw.visitField(ACC_PRIVATE + ACC_STATIC, memberNames.key1FieldName, "I", null, null);
fv.visitEnd();
fv = cw.visitField(ACC_PRIVATE + ACC_STATIC, memberNames.key2FieldName, "I", null, null);
fv.visitEnd();

代码示例来源:origin: ItzSomebody/Radon

fv = cw.visitField(ACC_PRIVATE + ACC_STATIC + ACC_VOLATILE, memberNames.constantFieldName, "Ljava/lang/Object;", null, null);
fv.visitEnd();
fv = cw.visitField(ACC_PRIVATE + ACC_STATIC + ACC_VOLATILE, memberNames.indicatorFieldName, "Ljava/lang/Object;", null, null);
fv.visitEnd();
fv = cw.visitField(ACC_PRIVATE + ACC_STATIC, memberNames.elementFieldName, "Ljava/lang/StackTraceElement;", null, null);
fv.visitEnd();
fv = cw.visitField(ACC_PRIVATE + ACC_FINAL + ACC_STATIC, memberNames.indexFieldName, "I", null, null);
fv.visitEnd();

代码示例来源:origin: RS485/LogisticsPipes

FieldVisitor fv = node.visitField(Opcodes.ACC_PRIVATE, "logisticsPipesAdditionalInformation", "Ljava/util/ArrayList;", "Ljava/util/ArrayList<Llogisticspipes/asm/addinfo/IAddInfo;>;", null);
fv.visitEnd();

相关文章