有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

安卓在Java中,什么是类的引用。你喜欢什么?

我正在构建一个小的Android应用程序,但这更像是一个Java问题,而不是Android问题。浏览教程时,有几行代码如下所示:

startService(new Intent(this, MyService.class));

“MyService.class”字段究竟代表什么?这只是对模板类的引用吗

谢谢


共 (4) 个答案

  1. # 1 楼答案

    是,MyService.class返回表示类MyService的类对象。意图使用它来确定您打算启动的服务或活动

  2. # 2 楼答案

    安迪的回答肯定是正确的,但我想在这一点上再进一步

    .class是获取类对象实例的特殊语法。当只有类型可用且周围没有相关对象的实例时,可以使用它。它可以与任何具体的类型名一起使用,包括数组和原语。例如,int.class是有效的

    获取类对象的这种方法(以及其他方法)记录在旧的Sun reflection API docs

    特殊的.class语法通常在习惯用法中作为泛型代码中的“类型标记”出现。当“在传递编译时和运行时类型信息的方法之间传递”时,使用.class获得的类文本称为类型标记(Joshua Bloch's Effective Java 2e,第142页)

  3. # 3 楼答案

    MyService.class允许您仅从类名获取描述MyClass类的类对象(而不是让类的实例请求object.getClass()

  4. # 4 楼答案

    在JVM中,加载类时,Class类型的对象表示内存中加载的类com.abc.MyClass.class是一个文字表达式,表示类com.abc.MyClassClass对象

    如果有对类的对象的引用,也可以通过调用myClassReference.getClass()方法来获得相同的Class对象

    Class对象可用于查找有关类的结构、访问字段、调用方法以及使用Java反射API实例化类的对象的信息