为了账号安全,请及时绑定邮箱和手机立即绑定

在不创建对象的情况下调用 LayoutInflater 的方法

在不创建对象的情况下调用 LayoutInflater 的方法

慕尼黑5688855 2022-08-03 10:39:19
我对这段代码感到困惑 在这里,他们使用抽象类继承它,最重要的是他们调用了一个方法而没有创建一个对象附言完整代码 :- https://github.com/udacity/ud839_CustomAdapter_Example/blob/master/app/src/main/java/com/example/android/flavor/AndroidFlavorAdapter.java
查看完整描述

1 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

他们能够在不创建对象的情况下调用该方法,因为该方法是静态的。静态方法不附加到类的实例,而是附加到类本身,因此您可以调用它们而无需创建新的任何内容。


例如,如果您有


public class School {

    public String getName() {

        return name;

    }

}

要调用它,您需要创建一个对象,这是有道理的,因为该方法可用于获取特定学校的名称。


School school = ...;

String schoolName = school.getName();

但是如果你有一个像这样的静态方法


public class School {

    public static List<School> getAllSchools() {

        ....

    }

}

那么你不需要n个实例来调用它,因为它不是绑定到实例,而是绑定到类。


School.getAllSchools();

反之亦然。它不是从实例调用的方法;相反,它是一个静态方法,用于创建 LayoutInflater 的实例。LayoutInflater.from


LayoutInflater inflater = LayoutInflater.from(context);

这称为静态初始值设定项,当您想要返回某些内容的实例,但构造函数并不真正工作时,将使用它。例如,如果您使用构造函数(如果可能的话),那么它每次都会创建一个新对象,这并不总是最好的。但是静态初始值设定项允许您创建一个对象并保存它,以便您可以再次返回相同的对象,这在某些情况下更好,并且是使用静态初始值设定项的主要原因之一,例如.new LayoutInflater(...)LayoutInflater.from


查看完整回答
反对 回复 2022-08-03
  • 1 回答
  • 0 关注
  • 127 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信