Java guice';什么是文字工作?

Java guice';什么是文字工作?,java,generics,guice,Java,Generics,Guice,Guice的TypeLiteral如何克服Java泛型类型擦除过程 它的工作很神奇,但这是如何实现的?这里使用的技巧是泛型超类型的签名存储在子类中,因此在删除后仍然有效 如果您创建了一个匿名子类newtypeliteral() 如果仔细观察,TypeLiteral有一个受保护的构造函数,因此在构造一个新的{}时可以使用一个额外的{}来创建TypeLiteral的匿名子类 在Java中,泛型声明保留在类和方法声明上,所以如果我写这个 public abstract class Class1<

Guice的TypeLiteral如何克服Java泛型类型擦除过程


它的工作很神奇,但这是如何实现的?

这里使用的技巧是泛型超类型的签名存储在子类中,因此在删除后仍然有效


如果您创建了一个匿名子类
newtypeliteral()

如果仔细观察,TypeLiteral有一个受保护的构造函数,因此在构造一个新的{}时可以使用一个额外的{}来创建TypeLiteral的匿名子类

在Java中,泛型声明保留在类和方法声明上,所以如果我写这个

public abstract class Class1<T>
{
}

public class Class2 extends Class1<Integer>
{
}
公共抽象类Class1
{
}
公共类Class2扩展了Class1
{
}
实际上,我可以在Class1中编写代码,如果Class2是子类,那么它自己的泛型类型就是Integer

查看java.lang.Class API以获得适当的方法(它们的名称中有泛型)