是否有任何理由为LOG_TAG提供其他可见性而不是私有?

时间:2014-02-26 14:19:46

标签: android android-logcat

我目前正在处理一些现有代码,其中包含使用LOG_TAG或默认可见性声明的大量protected属性。

当我在这些类的子类中声明自己的LOG_TAG时,由于字段隐藏,我收到了很多警告。这就是为什么我开始想知道为什么以前的开发者做出这样的选择。

我不相信在暴露类的LOG_TAG字段时有任何用处,因为任何子类都应该有自己的区别与其父类。

这就是我要问的原因:

  • 您认为为子类使用相同的标记有意义吗?
  • 如果是,您认为通过使用父类的字段或在子类中重新定义相等(和私有)LOG_TAG更好吗?

恕我直言,所有这些字段都应该是私有的,每个类别都有一个LOG_TAG

1 个答案:

答案 0 :(得分:3)

我认为你已经回答了自己的问题,但请允许我扩展你的答案。 :)

TAG的目的似乎主要是完成两件事:

  1. 允许过滤LogCat输出和
  2. 显示哪个代码构造(读取:Class)产生了一段特定的LogCat输出。
  3. 也就是说,你可以通过在父类和子类之间共享TAG来完成#1,而不是#2。因此,共享TAG会丢失(如果您有3个共享相同TAG的类,您可能并不总是通过简单检查LogCat输出哪个类生成所述输出而知道。

    所以回答你的问题,不,我认为对子类使用相同的TAG没有任何意义。永远。决不。如初。

    我同意你的观点,TAG应始终声明为private(以及static final),这将排除在父类中声明的TAG被用于儿童班。

    我说,保留那些TAG s private

    继续。