当前位置: 首页 > 面试题库 >

获取通用类

张砚
2023-03-14
问题内容

我的课开始于

public abstract class LastActionHero<H extends Hero>(){

现在,我想在代码中的某处编写代码,H.class但这是不可能的(就像String.class还是Integer.class现在)。

您能告诉我如何获得Class通用药吗?


问题答案:

您可以动态提供类型,但是编译器不会自动为您提供该类型。

public abstract class LastActionHero<H extends Hero>(){
    protected final Class<H> hClass;
    protected LastActionHero(Class<H> hClass) {
        this.hClass = hClass;
    }
    // use hClass how you like.
}

顺便说一句:动态地获取它并非不可能,但这取决于如何使用它。例如

public class Arnie extends LastActionHero<MuscleHero> { }

可以确定Arnie.class具有带有MuscleHero的Generic参数的超类。

public class Arnie<H extend Hero> extends LastActionHero<H> { }

H在这种情况下,超类的通用参数就是这样。



 类似资料:
  • 问题内容: 嗨,Java中有什么方法可以获取静态通用类类型 我结束了构建 我想知道是否存在类似的东西: (我真的不想构造新的对象只是为了获得其类型) 谢谢 问题答案: 由于所有类实际上在运行时都对应于同一类,因此可以这样做: 但是由于某种原因,Java不喜欢它。用String尝试过: 好吧,那我们就傻了吧: 这很愚蠢,但是有效。它会产生“未经检查”的警告,但是您的示例也是如此。请注意,尽管如此,它

  • 问题内容: 我有; 有没有一种(简单的)方法来检索列表的通用类型? 问题答案: 如果这些实际上是某个类的字段,那么你可以在反射的帮助下获得它们: 你还可以对参数类型和方法的返回类型执行此操作。 但是,如果它们处于你需要了解它们的类/方法的同一范围之内,那么就没有必要了解它们,因为你已经自己声明了它们。

  • 我有一个Web角前端,API网关受Cognito和Lambda保护,用于其他业务用例。登录和授权工作正常。我正在使用AWS Javascript SDK进行授权。像https://s3.amazonaws.com/solutions-reference/mobile-backend/latest/mobile-app-backend.pdf 在我的lambda中,我需要获得其他用户的信息,如名字、

  • 问题内容: 我有一个抽象类: 我需要充实的孩子-每个孩子都有自己的孩子 我只找到一种解决方案,但需要编译器参数 这是最好的解决方案吗?没有我们可以做同样的事情吗? 问题答案: 实现此目的的类型安全但很简单的方法是传递令牌“编译器可以看到它的位置”: 如果您执行的是未经检查的强制转换,但您“知道自己在做什么”,并且希望编译器停止抱怨,则正确的方法是将非类型安全但您知道它们的工作位本地化。使用: (我

  • 问题内容: 使用泛型时,我在Java中有一个小问题。我有一堂课: 在方法中,我需要获取类型名称。有没有办法找到字符串使用? (如果创建了,我希望能够做到这一点- 我必须使用通用性,因为我的方法之一必须返回)。 这似乎很容易,但是我不知道如何去做。 问题答案: 由于 类型擦除, 您通常无法执行此操作-的实例不 知道 的类型。如果需要,一种方法是使用类型文字: 然后: 这很丑陋,但这就是类型擦除的作用

  • 请求header GET /v1/notify Authorization:Bearer {ACCESS TOKEN} Content-Type:application/json 注:请将上方的{ACCESS TOKEN}替换为您的ACCESS TOKEN 返回 { "result": "success", "url": "http://www.foo.com/" }