编译时类型在运行时并不直接存在,但是可以通过反射机制获取到运行时的类型信息。下面是一个示例代码:
public class Main {
public static void main(String[] args) {
String s = "Hello, World!";
Class extends String> clazz = s.getClass();
System.out.println(clazz.getName()); // 输出 "java.lang.String"
}
}
在这个例子中,我们创建了一个字符串对象 s
,然后调用它的 getClass()
方法获取到它的运行时类型,存储在 clazz
变量中。我们可以通过 clazz.getName()
方法获取到该类型的名称,即 "java.lang.String"。这里需要注意的是,由于 Java 中的一些类型是有继承关系的,所以 clazz
的实际类型可能会是 String
的一个子类,因此我们需要使用泛型来表示其类型。