public static Instruction getFieldInsn(
            final int opcode,
            final String owner,
            final String name,
            final String desc) {
        return new Instruction() {
            @Override
            public boolean accept(AbstractInsnNode node) {
                if (node.getType() == AbstractInsnNode.FIELD_INSN) {
                    FieldInsnNode f = (FieldInsnNode) node;
                    return (opcode == -1 || opcode == node.getOpcode())
                            && (owner == null || owner.equals(f.owner))
                            && (name == null || name.equals(f.name))
                            && (desc == null || desc.equals(f.desc));
                }
                return false;
            }
        };
    }