问题标签 [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.
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<?>
等等,但总是使用直接强制转换或导致警告的通用强制转换。必须有一种方法可以在没有强制转换的情况下干净地编译
java - 如果 Object instanceof HashMap,如何检查键和值的类型?
我有一个接受对象的方法。在一个用例中,该方法接受 aHashMap<String, String>
并将每个值设置为相应键名的属性。
此类遵循特定的接口,因此为这些属性添加设置器不是一种选择。
我的问题是,如何检查这里的类型转换?
提前致谢!
解决方案
感谢@drobert 的回答,这是我更新的代码:
java - 警告:[unchecked] 未经检查的演员表。泛型
我遇到了未经检查的演员表的警告。我不确定如何解决这些警告。
编译器错误似乎选择list = (E[]) new IntKeyed [size];
了我们假设使用字母对字母的代码。
我们正在尝试使用泛型,因此使用“E”。
所以我想我一定在这段代码的某个地方搞砸了。当我查看错误时,它似乎处理了,但据我所知ArrayLists
,我没有使用 an 。ArrayList
也许我应该是ArrayLists
?改变它会修复警告吗?我的代码中还有一个不完整的异常处理问题。但我认为这与 Array 问题无关。
您能找到的任何错误都将帮助我指明正确的方向。谢谢。
编译时javac -Xlint:unchecked MyArrayList.java
我得到:
java - 类型安全:从 Object 到 ArrayList 的未经检查的强制转换
这是从服务器向客户端发送 ArrayList 的程序的一部分。我想删除有关此代码中最后一行的警告:
客户端代码:
MyVariable 是一个具有一些属性的 Java 类。服务器正在创建一个 ArrayList 并用 MyVariable 变量作为项目填充它。然后它将完整列表发送给客户端。
我想知道为什么我在那里有一个警告以及如何完美地编码以获得 0 个警告。如果可能的话,我想避免使用“@SuppressWarnings("unchecked")”。;)
谢谢,
路易斯
java - Java:通用类型转换,我该如何解决这个问题,这样我就不会抑制未经检查的警告
在下面的行中调用它就可以了,并且尝试使用不扩展 JavaPlugin 的类将引发编译时错误。但是我怎样才能做到以上功能不需要@SuppressWarnings("unchecked")
?
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.
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()
我的评论似乎很蹩脚,但我想不出更好的了。这就是我的问题:为什么这种未经检查的演员是合理的?什么是真正可以帮助未来开发人员的有意义的评论,这意味着比“只要相信我”更有效吗?
java - 未经检查的班级演员
我有这个代码:
它告诉我
我应该如何以正确的方式解决这个问题?
谢谢!
编辑:
超类代码:
java - 避免使用具有双重扩展类的泛型进行未经检查的强制转换?
我有以下代码,因为我理解了<T extends Buffer>
真正的含义,所以我今天刚刚重构了它,这是简化版本:
警告发生在Buffer.create()
,抑制警告是否安全?有什么办法让它更安全吗?
另一个要求是不应在此 API 的调用/使用代码中添加任何混乱,具体而言,这意味着DynamicDrawArrayBuffer
可能不会附加泛型。
java - 为什么在将 Throwable 向下转换为异常时没有给出未经检查的转换警告?
使用此代码:
为什么 javac 不给出未经检查的强制转换警告?
Exception
extends Throwable
,因此您不能只将所有Throwable
s 转换为Exception
.