this指当前对象的实例。而静态变量无需实例化就可以构建,使用。而且无论是否有实例,有多少个实例,静态对象都指向同一个。所以不会有this的引用。
不仅如此。在静态方法中也不能使用this。
有一个理解方式。所有非静态函数都有一个隐藏的参数,this,把对象传了过去。静态方法没有这个隐藏参数,所以不能用this。
你好。
我的理解如下。首先你要知道static变量的初始化时间
这是一个子类创建的时候初始化过程:
这是之前写的博客:
网页链接
结论是: 父类static ->子类static->父类普通赋值语句->子类普通赋值语句->父类构造->子类构造
也就是说。一个类的static方法会先于类的任何一个对象之前初始化。
而this是当前对象。所以static初始化之后。this才会被创建。显然static方法是没有this的(它初始化的时候还没有this对象)
希望对你有所帮助。如果有错误欢迎指出。
可以在把具体的场景说一下吗,这样不太好回答
从现在的提问上来看 你可以直接创一个null
也可以传一个Context的子类 一般来说
或new一个Context 或者它的子类
以上就是关于java:在java中为什么静态变量没有this引用全部的内容,包括:java:在java中为什么静态变量没有this引用、Java中,static方法就是没有this的方法,怎么理解这句话、static 方法中 如何获取上下文 android 中 静态方法中不能使用this当做上下文的对象,怎么办等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)