2017-06-18 80 views
0

我不小心编写了我的Toast这种方式,它继续工作。Android:为什么makeText与Toast实例一起工作?

public class MainActivity extends AppCompatActivity { 

    private Toast mToast; 

    ... 

    private void onClickHandler(int itemIndex) { 
    mToast = new Toast(); 
    mToast.makeText(this, String.valueOf(itemIndex), Toast.LENGTH_SHORT).show(); 
    } 
} 

鉴于makeText是一个静态方法,为什么上面的工作?

回答

2

因为静态方法和变量也可以通过从一个类的实例访问

然而,访问他们的方式被认为是不好的做法

+1

是的,这和Android Studio是突出它的集成开发环境之一作为建议的更改,而不是使用Java时的编译错误。更好的是,Kotlin不允许从实例中使用静态方法。 – DaveNOTDavid

相关问题