我可以创建一个将调用类的注释
Log.e("", "")
并且该方法的名称是第一个参数,方法名称是第二个参数?
这样的事情:
public class UploaderService {
@Debuggable
void onUploadProductSuccess(int productServerId) {
}
}
Logcat输出:
UploaderService | onUploadProductSuccess 43
在Android中使用它还有什么需要注意吗?
答案 0 :(得分:1)
您的问题已经回答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,而是调用上面的方法。