gpt4 book ai didi

java - 通过实例引用访问静态成员(使用 'this' 关键字)

转载 作者:行者123 更新时间:2023-11-30 01:40:50 25 4
gpt4 key购买 nike

public class RoundCapGraph extends View {
static private int strokeWidth = 20;

public void setStrokeWidth(int strokeWidth){
this.strokeWidth = strokeWidth;
//warning : static member 'com.example.ud.RoundCapGraph.strokeWidth' accessed via instance reference
}
}

在 android studio 中,我尝试使用 setStrokeWidth 设置描边宽度。
但我收到警告通过实例引用访问静态成员“com.example.ud.RoundCapGraph.StrokeWidth”

问题:“this”关键字是否创建新实例并通过新实例访问变量?

已编辑:我真的不需要将描边宽度变量设置为静态,但我想了解为什么使用“this”关键字会产生特定警告

最佳答案

this 关键字不会创建新实例,但 this. 通常用于访问实例变量。

因此,当编译器发现您尝试通过 this. 访问 static 变量时,它会假定您可能犯了一个错误(即您的 Intent 是访问实例变量),因此它会发出警告。

访问static变量的更好方法是:

RoundCapGraph.strokeWidth = strokeWidth;

编辑:您正在实例方法中设置static变量。这很好地表明编译器警告您有关访问静态变量(就好像它是实例变量一样)的警告是正确的。

您应该通过static方法设置static变量,并通过实例方法设置实例变量。

关于java - 通过实例引用访问静态成员(使用 'this' 关键字),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60077267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com