java - Java 中的类型文字是什么?

标签 java literals abstract-syntax-tree

有一个名为 TypeLiteral . 的 ASTNode 子类

这种类型的代码的描述说它看起来像

( Type | void ) . class

我相信我从来没有见过这样的事情。

任何人都可以提供 TypeLiteral 的示例吗? ,也许还可以在 Java 程序中使用它?

最佳答案

有一个类叫Class代表对象的类。它包含用于对该类和该类的对象进行内省(introspection)的各种有用方法。获取类对象的一种方法是使用 Object 方法 getClass()。但是,如果您想通过类的名称引用Class,则可以使用类文字。

一些例子:

class Foo {
  void method(Object b) {
    if(b.getClass() == Foo.class) {
      Foo f = Foo.class.cast(b);
    }
    Foo.class.getResourceAsStream(...);
    Foo.class.getMethod("method", Object.class);
  }
}

关于java - Java 中的类型文字是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17053146/

相关文章:

java - 将 JRE 设置为使用 Windows 信任库,特别是用户的信任库

java - Spring data mongo未绑定(bind)某些参数

c - GCC 编译器并将 const char* 转换为 char *

arrays - 如何在 Rust 的全局范围内指定 const 数组?

java - android WebView shouldOverrideUrlLoading()

c - long long 是 8 个字节,但我得到整数溢出?

java - 使用 JDT 将注释附加到类

java - 如何在 ANTLR 3 树解析器中表达多个节点

c++ - 在 Clang 中判断访问的 CXXRecordDecl 是类、结构还是 union

Java版本问题