java - 调用 LayoutInflater 的方法而不创建对象
问题描述
我对这段代码感到困惑 在这里他们使用抽象类来继承它,最重要的是他们调用了一个方法而不创建对象
解决方案
他们能够在不创建对象的情况下调用该方法,因为该方法是静态的。静态方法不附加到类的实例,而是附加到类本身,因此您可以调用它们而无需创建新的任何东西。
例如,如果您有
public class School {
public String getName() {
return name;
}
}
要调用它,您需要创建一个对象,这是有道理的,因为该方法用于获取特定学校的名称。
School school = ...;
String schoolName = school.getName();
但是如果你有这样的静态方法
public class School {
public static List<School> getAllSchools() {
....
}
}
那么你不需要 n instance 来调用它,因为它不依赖于实例,而是依赖于类。
School.getAllSchools();
也是如此LayoutInflater.from
。它不是从实例调用的方法;相反,它是一个创建LayoutInflater 实例的静态方法。
LayoutInflater inflater = LayoutInflater.from(context);
这称为静态初始化程序,当您想要返回某物的实例时使用,但构造函数实际上不起作用。例如,如果您使用构造函数(new LayoutInflater(...)
如果可能的话),那么它每次都会创建一个新对象,这并不总是最好的。但是静态初始化器允许你创建一个对象并保存它,这样你就可以再次返回同一个对象,这在某些情况下会更好,并且是使用静态初始化器的主要原因之一,比如LayoutInflater.from
.
推荐阅读
- java - 在 Spring Boot 中使用 BASIC AUTH 进行 POST 调用中的 Multipart/form-data
- flutter - Flutter (Web) - 使用带有导航栏的路由
- java - Java - 如何打印字典值
- flutter - 图像不适合容器 | Boxfit.fill?
- loops - 数据增强仅增强目录中的 1 个图像
- javascript - JavaScript:需要帮助访问 API JSON 数据
- python - Cumsum 与 groupby 用于日期累积
- python - 在 Sympy 中使用 lambdify 将具有复指数的表达式转换为函数
- python - 如何将命令中的值保存到 .json 中?
- javascript - 如何在 ReactJS 中添加类名“活动”