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

java:未经检查的对getConstructor(java.lang.Class …)的调用

江光明
2023-03-14
问题内容

我正在使用反射来构造一个将File作为参数的类(ConfigBuilder):

Class myClassType = Class.forName(className);
Class[] types = new Class[] { File.class };
Constructor cons = myClassType.getConstructor(types);
Object[] constructorArgs = new Object[] { myFile };
cb = (ConfigBuilder) cons.newInstance(constructorArgs);

但是我得到这个警告:

warning: [unchecked] unchecked call to getConstructor(java.lang.Class<?>...) as a member of the raw type java.lang.Class
Constructor cons = myClassType.getConstructor(types);

显然,似乎getConstructor期望使用泛型,因此我尝试了类似的操作:

Class<?>[] types = new Class<?>[] { File.class };

但我收到相同的警告消息

任何想法 ?

大卫


问题答案:

该警告实际上是指myClassType。您还需要参数化它(和cons)。

Class<?> myClassType = Class.forName(className);
Class<?>[] types = new Class[] { File.class };
Constructor<?> cons = myClassType.getConstructor(types);


 类似资料:
  • 问题内容: 我有以下代码行 哪里 但我收到有关未经检查的转化的警告。如何停止此警告? 问题答案: 之所以会这样,是因为getSpecialCharMap()返回的对象的类型不能由编译器验证为HashMap 。继续并提供getSpecialCharMap的原型。

  • 问题内容: 我已将Netbeans设置为在我的Java代码中显示未经检查的警告,但是我无法理解以下几行的错误: 给出: 方法来源: 到底出了什么问题,我想如何解决呢?因为我认为在代码中留下未经检查的警告不是一个好主意? 忘了提,但我使用的是Java 7。 编辑 :我现在也看到该方法具有以下内容: 问题答案: 如上面的janoh.janoh所述,Java中的varargs只是数组的语法糖,以及在调用

  • 问题内容: 我一直在阅读有关未解决问题和已解决问题的信息,没有一个在线资源真正了解它们之间的区别以及何时使用两者。 据我了解,它们都在运行时抛出,它们都表示超出逻辑预期范围的程序状态,但是必须显式捕获已检查的异常,而未检查的异常则不能。 我的问题是,假设出于参数考虑,我有一个将两个数字相除的方法 以及需要在某处划分的方法 谁负责检查分母为零的情况,应该检查还是取消检查异常(忽略Java的内置div

  • 我正在浏览从iOS移植的Android应用程序,并试图找出我收到的任何警告的原因,并使我的代码与Android Studio的lint保持一致。 到目前为止,大多数“问题”都很容易修复,但是我收到了一个警告,其中包含一个特定的 Parse.com API函数,这让我感到困惑。 代码如下: 显示的警告是: 未经检查的调用findInbackground(FindCallback 当您允许自动完成为您

  • 问题内容: 我在理解Java 和异常之间的区别时遇到了一些问题。 首先,异常应该在编译时寻找异常。在不同来源中提供的示例引用了数据库连接性,其中一些是文件处理,而异常应该是在程序员方面寻找错误,例如索引超出数组范围等。 不应该反过来吗?我的意思是,数据库连接是在运行时完成的,对吧?文件处理也是如此。您没有在编译时打开文件句柄,那么为什么在编译时会寻找一个可能的错误呢?另一方面,超出数组范围的索引已

  • 问题内容: 这个问题最好用一个例子来解释: 在Java中,对于JPA EntityManager,我可以执行以下操作(帐户是我的Entity类): 在Scala中,我的幼稚尝试是: 但是,当我尝试在Scala中使用时,似乎并不喜欢这样。如何在Scala中为Account类指定java.lang.Class对象? 问题答案: 根据“ Scala类型系统 ”, 该方法返回Scala类型的运行时表示形式