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

如何获得通用课程

仇迪
2023-03-14
问题内容
Class Model<T>{

   private T t;

   .....


   private void someMethod(){
       //now t is null
       Class c = t.getClass();
   }

   .....

}

当然会抛出NPE。

Class c = t.getClass();

如果实例为空,我应该使用什么语法来获取T类?可能吗?


问题答案:

由于类型擦除,这是不可能的。

有以下解决方法:

class Model<T> {

    private T t; 
    private Class<T> tag;

    public Model(Class<T> tag) {
       this.tag = tag;
    }

    private void someMethod(){ 
       // use tag
    }  
}


 类似资料:
  • 有没有办法从JavaScript(Nashorn)中获取和使用扩展Java类? 我试图做的是在Nashorn中扩展一个Java类,然后将其传递回Java。例如,我们在JS中定义了一个类来扩展另一个类: 然后我试图得到这个扩展的对象在Java像这样: 然而,我无法在Java中对此对象进行任何方法调用。当我试图将其转换为基类时,它总是抛出异常。测验SomeClass。 是否可以在Java中使用在Nas

  • 问题内容: 请帮助我得到一个where 本身就是一个泛型类型。如我现在所见,Spring RestTemplate现在不支持此功能。我正在使用Spring MVC版本3.1.2 这是我要使用的代码:代码: 我收到此错误: 这是明显的错误,但是今天如何解决呢? 比我想得到我的通用响应类型: 现在,我使用此解决方案,并且不使用: 问题答案: 通过引入修复了该问题,你可以显式继承该参数化类型,以便在运行

  • 文档页面显示boto3支持服务配额,但看起来不支持,或者我在这里做了什么不正确的事情? https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/service-quotas.html

  • 既然你已经下定决心要学习 Perl 这门编程语言,那么摆在你面前的第 一件事就是得到它。 你有 Perl 吗 试试从命令行执行 perl -v,如果你看到 Perl 的版本及版权等信息, 那么说明你的系统已经具有 Perl。反之,如果你看到的是类似 command not found 这样的输出,那么你需要安装 Perl。 $ perl -v This is perl 5, version 18

  • 问题内容: 我的Go程序需要知道所有系统和用户进程的当前cpu使用率。 我如何获得? 问题答案: 我遇到了类似的问题,但从未找到轻量级的实现。这是我的解决方案的精简版,可以回答您的特定问题。我按照tylerl的建议对文件进行采样。您会注意到,我在两次采样之间等待3秒以匹配top的输出,但是在1或2秒的情况下我也取得了不错的结果。我在go例程中的循环中运行类似的代码,然后在需要其他go例程时访问cp

  • 问题内容: 我想检索用户的所有权限作为权限ID的列表,但是: 给我权限名称列表。怎么做? 问题答案: 关键是获取这样的权限对象: 在这里您可以像这样访问属性: 如果您想要该列表,请执行以下操作: 希望能帮助到你!