All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.flyjingfish.android_aop_annotation.ProceedJoinPoint Maven / Gradle / Ivy

package com.flyjingfish.android_aop_annotation;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

/**
 * 切点相关信息类,wiki 文档使用说明
 */
public interface ProceedJoinPoint {
    /**
     *
     * wiki 文档使用说明
     *
     * @return 调用切点方法时传入的参数数组
     */
    @Nullable
    Object[] getArgs();

    /**
     * 调用切点方法内代码
     *
     * @return 返回切点方法返回值 wiki 文档使用说明
     */
    @Nullable
    Object proceed();

    /**
     * 调用切点方法内代码
     *
     * @param args 切点方法参数数组
     * @return 返回切点方法返回值 wiki 文档使用说明
     */
    @Nullable
    Object proceed(Object... args);

    /**
     * @return 切点方法相关信息,例如方法参数类型、返回类型、参数的注解等等
     */
    @NonNull
    AopMethod getTargetMethod();

    /**
     * @return 切点方法所在对象,如果方法为静态的,此值为null
     */
    @Nullable
    Object getTarget();

    /**
     * @return 切点方法所在类 Class
     */
    @NonNull
    Class getTargetClass();

    /**
     * 和 {@link ProceedJoinPoint#getArgs()} 相比,返回的引用地址不同,但数组里边的对象一致。多用于多个切面逻辑时在某一个切面中获得最初的传入参数
     *
     * @return 最开始进入方法时的参数  wiki 文档使用说明
     */
    @Nullable
    Object[] getOriginalArgs();


}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy