我目前正在学习使用 Android Programming: The Big Nerd Ranch Guide 这本书在Android上编程,我遇到过这行代码
Intent i = new Intent(getActivity(),CrimeActivity.class);
我似乎无法理解为什么Intent的构造函数需要第二个参数。 如果我的知识对我有用,那么Java中的类只是对象的蓝图。
所以我很困惑为什么在Intents构造函数中将文字类作为参数传递?
那里发生了什么?
答案 0 :(得分:5)
在Java中,除了基本类型之外的所有东西都是一个对象。我们编写的类定义包含在Class of Class类中。例如:
class Foo{
}
Foo.class
是 Class 类的实例。
类对象包含有关类信息的信息,例如:名称,实例变量列表,方法列表等。
此信息可在运行时通过reflection使用。
答案 1 :(得分:2)
根据官方开发者指南 -
这提供了一种创建意图的方便的便捷方法 执行硬编码的类名,而不是依赖于系统 为你找一个合适的课程。
答案 2 :(得分:1)
你是对的,这个类就像一个对象的蓝图。你给Intent创建了那个“蓝图”,因为Intent本身(分别是最终为你的Intent提供服务的Android系统)将创建你传递给它的类的实例(一个对象)。
这就是你将类而不是实例传递给Intent的原因。