• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Java StringReference类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.jf.dexlib2.iface.reference.StringReference的典型用法代码示例。如果您正苦于以下问题:Java StringReference类的具体用法?Java StringReference怎么用?Java StringReference使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



StringReference类属于org.jf.dexlib2.iface.reference包,在下文中一共展示了StringReference类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: if

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
public LinkedHashMap<String,BundleListing.BundleInfo>read(String className,String memberName) throws Exception {

        if (reader!= null) {
            Method method = (Method) reader.read(className, memberName);
            if (method!= null){
                Iterable<? extends Instruction> instructions = method.getImplementation().getInstructions();
                for (Instruction instruction:instructions){
                    if (instruction instanceof ReferenceInstruction){
                        if (((ReferenceInstruction) instruction).getReferenceType()== 0){
                            StringReference s = (StringReference) ((ReferenceInstruction) instruction).getReference();
                            return BundleListingUtil.parseArray(s.getString(), (LinkedHashMap<String, BundleListing.BundleInfo>) map);
                        }
                    }
                }
            }
        }
        return null;
    }
 
开发者ID:alibaba,项目名称:atlas,代码行数:19,代码来源:AtlasFrameworkPropertiesReader.java


示例2: writeReference

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
public static void writeReference(IndentingWriter writer, int referenceType,
                                  Reference reference) throws IOException {
    switch (referenceType) {
        case ReferenceType.STRING:
            writeStringReference(writer, ((StringReference)reference).getString());
            return;
        case ReferenceType.TYPE:
            writer.write(((TypeReference)reference).getType());
            return;
        case ReferenceType.METHOD:
            ReferenceUtil.writeMethodDescriptor(writer, (MethodReference) reference);
            return;
        case ReferenceType.FIELD:
            ReferenceUtil.writeFieldDescriptor(writer, (FieldReference)reference);
            return;
        default:
            throw new IllegalStateException("Unknown reference type");
    }
}
 
开发者ID:alibaba,项目名称:atlas,代码行数:20,代码来源:ReferenceFormatter.java


示例3: addRegisterAssignmentDebugInfo

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
private void addRegisterAssignmentDebugInfo(
		LocalRegisterAssignmentInformation registerAssignment, Map<Local, Integer> seenRegisters, MethodImplementationBuilder builder) {
	Local local = registerAssignment.getLocal();
	String dexLocalType = SootToDexUtils.getDexTypeDescriptor(local.getType());
	StringReference localName = dexFile.internStringReference(local.getName());
	Register reg = registerAssignment.getRegister();
	int register = reg.getNumber();
	
	Integer beforeRegister = seenRegisters.get(local);
	if (beforeRegister != null)
	{
		if (beforeRegister == register)
			//No change
			return;
		builder.addEndLocal(beforeRegister);
	}
	builder.addStartLocal(register, localName, dexFile.internTypeReference(dexLocalType), dexFile.internStringReference(""));
	seenRegisters.put(local, register);
}
 
开发者ID:flankerhqd,项目名称:JAADAS,代码行数:20,代码来源:DexPrinter.java


示例4: of

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
@Nonnull
public static ImmutableReference of(Reference reference) {
    if (reference instanceof StringReference) {
        return ImmutableStringReference.of((StringReference) reference);
    }
    if (reference instanceof TypeReference) {
        return ImmutableTypeReference.of((TypeReference) reference);
    }
    if (reference instanceof FieldReference) {
        return ImmutableFieldReference.of((FieldReference) reference);
    }
    if (reference instanceof MethodReference) {
        return ImmutableMethodReference.of((MethodReference) reference);
    }
    throw new ExceptionWithContext("Invalid reference type");
}
 
开发者ID:niranjan94,项目名称:show-java,代码行数:17,代码来源:ImmutableReferenceFactory.java


示例5: internReference

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
@Nonnull
public BuilderReference internReference(@Nonnull Reference reference) {
    if (reference instanceof StringReference) {
        return internStringReference(((StringReference) reference).getString());
    }
    if (reference instanceof TypeReference) {
        return internTypeReference(((TypeReference) reference).getType());
    }
    if (reference instanceof MethodReference) {
        return internMethodReference((MethodReference) reference);
    }
    if (reference instanceof FieldReference) {
        return internFieldReference((FieldReference) reference);
    }
    throw new IllegalArgumentException("Could not determine type of reference");
}
 
开发者ID:niranjan94,项目名称:show-java,代码行数:17,代码来源:DexBuilder.java


示例6: getReferenceString

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
@Nullable
public static String getReferenceString(Reference reference) {
    if (reference instanceof StringReference) {
        return String.format("\"%s\"", StringUtils.escapeString(((StringReference) reference).getString()));
    }
    if (reference instanceof TypeReference) {
        return ((TypeReference) reference).getType();
    }
    if (reference instanceof FieldReference) {
        return getFieldDescriptor((FieldReference) reference);
    }
    if (reference instanceof MethodReference) {
        return getMethodDescriptor((MethodReference) reference);
    }
    return null;
}
 
开发者ID:niranjan94,项目名称:show-java,代码行数:17,代码来源:ReferenceUtil.java


示例7: convertDebugItem

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
@Nonnull
private BuilderDebugItem convertDebugItem(@Nonnull DebugItem debugItem) {
    switch (debugItem.getDebugItemType()) {
        case DebugItemType.START_LOCAL: {
            StartLocal startLocal = (StartLocal) debugItem;
            return new BuilderStartLocal(startLocal.getRegister(),
                    (StringReference) convertReference(startLocal.getNameReference()),
                    (TypeReference) convertReference(startLocal.getTypeReference()),
                    (StringReference) convertReference(startLocal.getSignatureReference()));
        }
        case DebugItemType.END_LOCAL: {
            EndLocal endLocal = (EndLocal) debugItem;
            return new BuilderEndLocal(endLocal.getRegister());
        }
        case DebugItemType.RESTART_LOCAL: {
            RestartLocal restartLocal = (RestartLocal) debugItem;
            return new BuilderRestartLocal(restartLocal.getRegister());
        }
        case DebugItemType.PROLOGUE_END:
            return new BuilderPrologueEnd();
        case DebugItemType.EPILOGUE_BEGIN:
            return new BuilderEpilogueBegin();
        case DebugItemType.LINE_NUMBER: {
            LineNumber lineNumber = (LineNumber) debugItem;
            return new BuilderLineNumber(lineNumber.getLineNumber());
        }
        case DebugItemType.SET_SOURCE_FILE: {
            SetSourceFile setSourceFile = (SetSourceFile) debugItem;
            return new BuilderSetSourceFile(
                    (StringReference) convertReference(setSourceFile.getSourceFileReference())
            );
        }
        default:
            throw new ExceptionWithContext("Invalid debug item type: " + debugItem.getDebugItemType());
    }
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:37,代码来源:BuilderMutableMethodImplementation.java


示例8: analyze

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
private void analyze(@Nonnull DexBackedMethodImplementation implementation) {
    cyclomaticComplexity = calculateComplexity(implementation);
    registerCount = implementation.getRegisterCount();
    tryCatchCount = implementation.getTryBlocks().size();
    debugItemCount = Utils.makeCollection(implementation.getDebugItems()).size();

    for (Instruction instruction : implementation.getInstructions()) {
        instructionCount++;
        Opcode op = instruction.getOpcode();
        opCounts.adjustOrPutValue(op, 1, 1);

        if (instruction instanceof ReferenceInstruction) {
            ReferenceInstruction refInstr = (ReferenceInstruction) instruction;
            switch (op.referenceType) {
                case ReferenceType.METHOD:
                    MethodReference methodRef = (MethodReference) refInstr.getReference();
                    if (fullMethodSignatures) {
                        apiCounts.adjustOrPutValue(methodRef, 1, 1);
                    } else {
                        ShortMethodReference shortMethodRef = new ShortMethodReference(methodRef);
                        apiCounts.adjustOrPutValue(shortMethodRef, 1, 1);
                    }
                    break;
                case ReferenceType.FIELD:
                    FieldReference fieldRef = (FieldReference) refInstr.getReference();
                    fieldReferenceCounts.adjustOrPutValue(fieldRef, 1, 1);
                    break;
                case ReferenceType.STRING:
                    StringReference stringRef = (StringReference) refInstr.getReference();
                    stringReferenceCounts.adjustOrPutValue(stringRef, 1, 1);
                    break;
            }
        }
    }
}
 
开发者ID:CalebFenton,项目名称:apkfile,代码行数:36,代码来源:DexMethod.java


示例9: getSourceFileReference

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
@Nullable @Override public StringReference getSourceFileReference() {
    return sourceFile==null?null:new BaseStringReference() {
        @Nonnull @Override public String getString() {
            return sourceFile;
        }
    };
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:8,代码来源:ImmutableSetSourceFile.java


示例10: getNameReference

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
@Nullable @Override public StringReference getNameReference() {
    return name==null?null:new BaseStringReference() {
        @Nonnull @Override public String getString() {
            return name;
        }
    };
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:8,代码来源:ImmutableStartLocal.java


示例11: getSignatureReference

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
@Nullable @Override public StringReference getSignatureReference() {
    return signature==null?null:new BaseStringReference() {
        @Nonnull @Override public String getString() {
            return signature;
        }
    };
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:8,代码来源:ImmutableStartLocal.java


示例12: of

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
@Nonnull
public static ImmutableStringReference of(@Nonnull StringReference stringReference) {
    if (stringReference instanceof ImmutableStringReference) {
        return (ImmutableStringReference)stringReference;
    }
    return new ImmutableStringReference(stringReference.getString());
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:8,代码来源:ImmutableStringReference.java


示例13: equals

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
@Override
public boolean equals(@Nullable Object o) {
    if (o != null && o instanceof StringReference) {
        return getString().equals(((StringReference)o).getString());
    }
    return false;
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:8,代码来源:BaseStringReference.java


示例14: makeInstructionWriter

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
@Nonnull static <StringRef extends StringReference, TypeRef extends TypeReference, FieldRefKey extends FieldReference, MethodRefKey extends MethodReference>
        InstructionWriter<StringRef, TypeRef, FieldRefKey, MethodRefKey>
        makeInstructionWriter(
            @Nonnull DexDataWriter writer,
            @Nonnull StringSection<?, StringRef> stringSection,
            @Nonnull TypeSection<?, ?, TypeRef> typeSection,
            @Nonnull FieldSection<?, ?, FieldRefKey, ?> fieldSection,
            @Nonnull MethodSection<?, ?, ?, MethodRefKey, ?> methodSection) {
    return new InstructionWriter<StringRef, TypeRef, FieldRefKey, MethodRefKey>(
            writer, stringSection, typeSection, fieldSection, methodSection);
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:12,代码来源:InstructionWriter.java


示例15: getItemIndex

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
@Override public int getItemIndex(@Nonnull StringReference key) {
    Integer index = internedItems.get(key.toString());
    if (index == null) {
        throw new ExceptionWithContext("Item not found.: %s", key.toString());
    }
    return index;
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:8,代码来源:StringPool.java


示例16: checkStringReference

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
@Nullable private BuilderStringReference checkStringReference(@Nullable StringReference stringReference) {
    if (stringReference == null) {
        return null;
    }
    try {
        return (BuilderStringReference)stringReference;
    } catch (ClassCastException ex) {
        throw new IllegalStateException("Only StringReference instances returned by " +
                "DexBuilder.internStringReference or DexBuilder.internNullableStringReference may be used.");
    }
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:12,代码来源:BuilderClassPool.java


示例17: BuilderStartLocal

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
public BuilderStartLocal(int register,
                         @Nullable StringReference name,
                         @Nullable TypeReference type,
                         @Nullable StringReference signature) {
    this.register = register;
    this.name = name;
    this.type = type;
    this.signature = signature;
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:10,代码来源:BuilderStartLocal.java


示例18: getSourceFileReference

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
@Override public StringReference getSourceFileReference() {
    return sourceFile==null?null:new BaseStringReference() {
         @Override public String getString() {
            return sourceFile;
        }
    };
}
 
开发者ID:AndreJCL,项目名称:JCL,代码行数:8,代码来源:ImmutableSetSourceFile.java


示例19: getNameReference

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
@Override public StringReference getNameReference() {
    return name==null?null:new BaseStringReference() {
         @Override public String getString() {
            return name;
        }
    };
}
 
开发者ID:AndreJCL,项目名称:JCL,代码行数:8,代码来源:ImmutableStartLocal.java


示例20: getSignatureReference

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
@Override public StringReference getSignatureReference() {
    return signature==null?null:new BaseStringReference() {
         @Override public String getString() {
            return signature;
        }
    };
}
 
开发者ID:AndreJCL,项目名称:JCL,代码行数:8,代码来源:ImmutableStartLocal.java



注:本文中的org.jf.dexlib2.iface.reference.StringReference类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java Buffer类代码示例发布时间:2022-05-21
下一篇:
Java DatasetFactory类代码示例发布时间:2022-05-21
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap