java - 如何为要输出到 LogCat 的类编写注释?

标签 java annotations

我可以创建一个注释来进行类调用吗

Log.e("", "")

并将方法所在的类的名称作为第一个参数,方法名称作为第二个参数?

像这样:

public class UploaderService {

    @Debuggable
    void onUploadProductSuccess(int productServerId) {

    }


}

Logcat 输出:

UploaderService | onUploadProductSuccess 43

在 Android 中使用它还有什么注意事项吗?

最佳答案

您的问题已经得到解答here . 简而言之,是的,有点。 您可以为日志记录或任​​何其他目的创建自定义注释,但您必须使用同样适用于 Android 的反射实现检查类中注释的代码。

如果这对您很重要,那么您应该创建一个代理对象来获取服务名称、方法 + 参数列表参数。

像这样:

调用:

callServiceMethod("UploaderService","onUploadProductSuccess",productServerId);

方法来源:

public void callServiceMethod(String serviceName, String methodName, Object... paramList){
Object service = ;//getting the service object by name
//getting the method
Method method = service.getClass().getMethod(methodName, paramList[0].class,...);

for ( Annotation a : m.getAnnotations() ) {
// if the annotation found then write to log
}
//in the end:
method.invoke(service , paramList[0], ...);
}

在此方法中,您可以在调用实际方法之前检查被调用服务的注释。

如您所见,调用了该方法并写入了日志,但您必须调用上面的方法而不是调用 UploaderService.onUploadProductSuccess。

关于java - 如何为要输出到 LogCat 的类编写注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30138717/

相关文章:

java - Gradle 删除定义为任务输出的目录(陈旧目录)

java - netbeans 中的组合框

hibernate - 如何覆盖单个字段上的 AccessType

php - 使用 Symfony 和 Doctrine 创建多个表

java - Spring Boot @RestController 使用属性启用/禁用方法

java - 带有 TextFormatter 和/或 UnaryOperator 的 JavaFX 8 中用于整数的数字文本字段

java 中位数。当我有一个带有一对数字的数组时,我得到的中位数不正确

python - mypy如何使用typing.TYPE_CHECKING解决循环导入注解问题?

java - Java 8 中处理 "unsigned"整数的想法

java - 如何按常规字段映射表?