Andorid中的日志都要定义一个TAG常量
如:private static final String TAG = "MainActivity";但这样不是很麻烦吗?
能不能像.NET一样自动取得当前的类的类全名的功能
如:private static readonly String TAG = System.Reflection.MethodBase.GetCurrentMethod().DeclaringType;这样我就不用每次都去写这个TAG是什么啊

解决方案 »


  1. public class MainActivity extends Activity {
        private static final String TAG = "";//定义一个静态字符串
        
        static MainActivity()
        {
         TAG =  this.getClass().getName();//类初始化的时候进行赋值
        }
    }
      

  2. 好像不好自动生成
    getClass().getSimpleName()只能这样....
      

  3. private static final String TAG = "MainActivity";
    =》
    但这里没有办法写成
    private static final String TAG = this.getClass().getSimpleName();
    啊,因为static 不能有this
    -------------------------
    同样,如果我写在
    private static String TAG="";
    Static 
    {
        TAG = new MainActivety().getClass().getSimpleName();
    }
    但这样没有意思啊,因为我还是得写MainActivety这个我的想法是,让MainActivity继承我的一个类,然后这个类会自动生明一个TAG的属性,
    而这个TAG的值就为这个类的类名
    然后用这个方法来代替每次类都要起明一个TAG="写动输入类名" 的效果谢谢
      

  4. private static final String TAG = XXX.class.getSimpleName();
    这能这样了  没有自动获取的吧  再说你复制下类名也不花时间
      

aliyun

类似问题 »