问题标签 [unchecked-cast]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
855 浏览

java - 必须在列表中使用的参数的泛型方法中的未经检查的强制转换警告

在下面的代码中,类型参数D可以是 aList<Byte>或 a List<List<Byte>>(它是Fields<?, ?, D>接口中的第三个泛型参数,但我仍然可以在此处省略它 - 但它也存在于方法的返回类型中)。似乎无法找到一种方法来告诉编译器这一点 -Unchecked cast在标记的行中获取警告//*

如果hasLists是假的,那么我需要 D 是一个List<Byte>else a List<List<Byte>>daList变量是List<EnumMap<T, D>>一个。现在(对我来说)定义似乎很自然:

但是一旦我这样做并改变:

我收到一个错误:

不能从ArrayList<EnumMap<T,List<List<Byte>>>>List<EnumMap<T,D>>

一直在循环使 daBytes 成为对象,List<?>等等,但总是使用直接强制转换或导致警告的通用强制转换。必须有一种方法可以在没有强制转换的情况下干净地编译

0 投票
4 回答
60171 浏览

java - 如果 Object instanceof HashMap,如何检查键和值的类型?

我有一个接受对象的方法。在一个用例中,该方法接受 aHashMap<String, String>并将每个值设置为相应键名的属性。

此类遵循特定的接口,因此为这些属性添加设置器不是一种选择。

我的问题是,如何检查这里的类型转换?

提前致谢!

解决方案

感谢@drobert 的回答,这是我更新的代码:

0 投票
2 回答
1351 浏览

java - 警告:[unchecked] 未经检查的演员表。泛型

我遇到了未经检查的演员表的警告。我不确定如何解决这些警告。

编译器错误似乎选择list = (E[]) new IntKeyed [size];
了我们假设使用字母对字母的代码。
我们正在尝试使用泛型,因此使用“E”。

所以我想我一定在这段代码的某个地方搞砸了。当我查看错误时,它似乎处理了,但据我所知ArrayLists,我没有使用 an 。ArrayList

也许我应该是ArrayLists?改变它会修复警告吗?我的代码中还有一个不完整的异常处理问题。但我认为这与 Array 问题无关。

您能找到的任何错误都将帮助我指明正确的方向。谢谢。

编译时javac -Xlint:unchecked MyArrayList.java 我得到:

0 投票
5 回答
40501 浏览

java - 类型安全:从 Object 到 ArrayList 的未经检查的强制转换

这是从服务器向客户端发送 ArrayList 的程序的一部分。我想删除有关此代码中最后一行的警告:

客户端代码:

MyVariable 是一个具有一些属性的 Java 类。服务器正在创建一个 ArrayList 并用 MyVariable 变量作为项目填充它。然后它将完整列表发送给客户端。

我想知道为什么我在那里有一个警告以及如何完美地编码以获得 0 个警告。如果可能的话,我想避免使用“@SuppressWarnings("unchecked")”。;)

谢谢,

路易斯

0 投票
1 回答
112 浏览

java - Java:通用类型转换,我该如何解决这个问题,这样我就不会抑制未经检查的警告

在下面的行中调用它就可以了,并且尝试使用不扩展 JavaPlugin 的类将引发编译时错误。但是我怎样才能做到以上功能不需要@SuppressWarnings("unchecked")

0 投票
4 回答
80 浏览

java - Java: Returning an extended class given it's name

In the following code I am returning a class that extends the type of Entity given the name of the class (it then corrects it so that Class.forName can find it properly).

How can I modify this so that I can still return a class that extends Entity without using @SuppressWarnings("unchecked")?

I tired a few variations using T and just ? but couldn't come up with an answer.

0 投票
1 回答
96 浏览

java - 关于 Copyable getObjectCopy(),如何证明未经检查的演员表是可以的

(这是我之前的问题的后续。)

我有一个名为 的接口Copyable,它只有一个功能

这被许多其他类使用。因为这个函数总是返回 a Copyable,所以它会导致未经检查的强制转换。例子:

我的问题与 Josh Bloch 的建议有关(在 Effective Java,第 2 版,第 24 项中):

每次使用 @SuppressWarnings("unchecked") 注释时,请添加注释说明为什么这样做是安全的。

他的例子是

(见第 9 / 117 页底部:http: //www.infoq.com/resource/articles/bloch-effective-java-2e/en/resources/Bloch_Ch05.pdf

我喜欢这个主意,我想和它一起getObjectCopy()

我的评论似乎很蹩脚,但我想不出更好的了。这就是我的问题:为什么这种未经检查的演员是合理的?什么是真正可以帮助未来开发人员的有意义的评论,这意味着比“只要相信我”更有效吗?

0 投票
0 回答
182 浏览

java - 未经检查的班级演员

我有这个代码:

它告诉我

我应该如何以正确的方式解决这个问题?

谢谢!

编辑:

超类代码:

0 投票
2 回答
44 浏览

java - 避免使用具有双重扩展类的泛型进行未经检查的强制转换?

我有以下代码,因为我理解了<T extends Buffer>真正的含义,所以我今天刚刚重构了它,这是简化版本:



警告发生在Buffer.create(),抑制警告是否安全?有什么办法让它更安全吗?

另一个要求是不应在此 API 的调用/使用代码中添加任何混乱,具体而言,这意味着DynamicDrawArrayBuffer可能不会附加泛型。

0 投票
5 回答
773 浏览

java - 为什么在将 Throwable 向下转换为异常时没有给出未经检查的转换警告?

使用此代码:

为什么 javac 不给出未经检查的强制转换警告?

Exceptionextends Throwable,因此您不能只将所有Throwables 转换为Exception.