【问题标题】:Why do public methods require logging calls?为什么公共方法需要记录调用?
【发布时间】:2015-08-09 02:25:17
【问题描述】:

我做了一个公共类AlertDialogManager如下图,

public class AlertDialogManager {

/**
 * Function to display simple Alert Dialog
 * @param context - application context
 * @param title - alert dialog title
 * @param message - alert message
 * @param status - success/failure (used to set cancelable)
 * */

 public void showAlertDialog(Context context, String title, String message, Boolean status) {
     Log.i("DEBUG","Alert has been called");
     new AlertDialog.Builder(context)
             .setTitle(title)
             .setMessage(message)
             .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
                 public void onClick(DialogInterface dialog, int which) {
                     Log.i(CommonUtilities.TAG,"ok has been clicked");
                 }
             })
             .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
                 public void onClick(DialogInterface dialog, int which) {
                     Log.i(CommonUtilities.TAG,"Cancel has been clicked");
                 }
             })
             .setIcon(R.drawable.alert)
             .setCancelable(status)
             .show();
       }
}

所以,我在 android studio 中收到了这个警告。

如您所见,同样的错误“'public' method 'showAlertDialog()' has no logging call 报告任何不包含日志记录语句的公共方法。此检查不报告简单的 getter 和 setter"

这对 AlertDialogManager 类、它的方法 showAlertDialog 和 onClick 都重复。

通过记录,我认为它们是指 Log.i("TAG","Message") 并相应地添加它们。

所以,我似乎无法理解这个警告。因此,我感谢任何有助于理解它的帮助。

【问题讨论】:

  • 打印屏幕太小而无法阅读。 afaik,记录调用是可选的,不是强制性的。
  • 是的,但是我添加了 Log 并且警告没有消失,我想我可能在这里遗漏了一些东西,然后尝试放大打印屏幕,它的质量很高。
  • 如果只是一个警告,你可以忽略它。只是 IDE 有点过度保护,就像父母不希望他的孩子在夏天出门,除非穿着厚毛衣,因为“它可能会变冷”

标签: java android logging android-studio public-method


【解决方案1】:

您启用了更多的 lint 检查 - 可能所有这些检查。 这是我这边的截图:

所以我在这里打开了设置,我只是在搜索框中输入了 logger。你可以看到选中的 lint 检查:Class without logger
所以这是 Java -> 日志记录问题。在我的情况下,它没有启用,我使用默认设置进行 lint 检查(检查)。我认为这可能对 Java 应用程序更有帮助,但是我没有在纯 Java 中使用过这样的记录器,所以我不能确定。无论如何,我建议您禁用此检查,除非您的团队/公司必须这样做...

您使用的 Log 类是 Android SDK 的一部分,我想这可能是它没有“修复”警告的原因。

【讨论】:

    猜你喜欢
    • 2015-04-27
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 2015-03-12
    • 2015-04-30
    相关资源
    最近更新 更多