首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么我会收到未经检查的强制转换警告?

为什么我会收到未经检查的强制转换警告?
EN

Stack Overflow用户
提问于 2012-07-31 21:11:07
回答 1查看 585关注 0票数 4

在JTree中,我使用以下代码,并且没有收到任何警告:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Enumeration<DefaultMutableTreeNode> en = (Enumeration<DefaultMutableTreeNode>)selNode.postorderEnumeration();

但是当我使用下面的代码时,我得到了一个unchecked cast警告:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Enumeration<DefaultMutableTreeNode> en = (Enumeration<DefaultMutableTreeNode>)selNode.pathFromAncestorEnumeration( this.getRootNode() );

这是怎么回事?

EN

回答 1

Stack Overflow用户

发布于 2012-07-31 21:15:03

这基本上是由于泛型类型擦除造成的。在执行时,对象只知道它是某个类型EEnumeration<E> -所以它不能实际检查它是不是一个Enumeration<DefaultMutableTreeNode>

有关更多信息,特别是type erasure条目,请参阅Java Generics FAQ

编辑:我不知道为什么第一个会在没有警告的情况下成功,第二个不会。我希望两者都能给出警告。在我的经验中,你真的不能总是没有@SuppressWarnings("unchecked") -在你能做到的地方最小化它是值得的,但这是使用Java泛型的一个不幸的事实:

编辑:实际上我从这两个地方都得到了警告:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import java.util.*;
import javax.swing.tree.*;

public class Test {
    public static void main(String[] args) {
        DefaultMutableTreeNode node = null;

        Enumeration<DefaultMutableTreeNode> en1 = 
            (Enumeration<DefaultMutableTreeNode>)node.postorderEnumeration();
        Enumeration<DefaultMutableTreeNode> en2 = 
            (Enumeration<DefaultMutableTreeNode>)node.pathFromAncestorEnumeration(null);
    }
}

输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
c:\Users\Jon\Test>javac -Xlint Test.java
Test.java:8: warning: [unchecked] unchecked cast
        Enumeration<DefaultMutableTreeNode> en1 = (Enumeration<DefaultMutableTre
eNode>)node.postorderEnumeration();

                                ^
  required: Enumeration<DefaultMutableTreeNode>
  found:    Enumeration
Test.java:9: warning: [unchecked] unchecked cast
        Enumeration<DefaultMutableTreeNode> en2 = (Enumeration<DefaultMutableTre
eNode>)node.pathFromAncestorEnumeration(null);

                                       ^
  required: Enumeration<DefaultMutableTreeNode>
  found:    Enumeration
2 warnings
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11749065

复制
相关文章
Python中lambda(),filter(),map()函数
参考链接: Python lambda (匿名函数) | filter, map, reduce
用户7886150
2021/01/12
1K0
如何使用Python的lambda、map和filter函数
Python lambda函数,又称匿名函数,与我们使用def…语句创建的函数不同,可以命名函数,lambda函数不需要名称。当需要一个快速且不需要经常重复使用的(通常是一个小的)函数时,它非常有用。单独使用Lambda函数可能没有太多意义。lambda函数的价值在于它在哪里与另一个函数(例如map()或filter())一起使用。
fanjy
2022/06/04
2.1K0
如何使用Python的lambda、map和filter函数
针对map的lambda
例如原来的: Steam.of(Maps.of("foo", "bar")) .map(e -> e.getKey() + e.getValue()) .findFirst(); 现在 Steam.of(Maps.of("foo", "bar")) .map(SerFunc.entryFunc((key, value) -> key + value)) .findFirst();
阿超
2023/05/22
2190
python map()函数和lambda表达式
python map(fun,[arg]+)函数最少有两个参数,第一参数为一个函数名,第二个参数是对应的这个函数的参数(一般为一个或多个list)。
用户7886150
2021/01/25
6090
lambda与函数式
前面两篇文章介绍了什么是响应式编程?和响应式流的特性,一味讲概念终是枯燥,还是上手敲一敲代码实在感受一下响应式编程的“手感”吧。
Java3y
2019/10/23
5270
lambda与函数式
1.3 Hello,reactive world 前面两篇文章介绍了响应式编程和响应式流的特性,一味讲概念终是枯燥,还是上手敲一敲代码实在感受一下响应式编程的“手感”吧。 (3)lambda与函数式——响应式Spring的道法术器 这一节,我们先了解一下lambda与函数式(已经了解的朋友可以直接跳到1.3.2),熟悉一下如何使用Reactor进行响应式编程,然后使用Spring Boot2,基于Spring 5的Webflux和Reactive Spring Data逐步开发一个“Hello world”
IT架构圈
2018/06/01
5040
【Python】函数进阶 ④ ( Lambda 匿名函数 | 具名函数与匿名函数 | Lambda 函数定义语法 )
在 Python 中 , 使用 def 关键字定义的函数 是 " 具名函数 " , 也就是有名字的函数 ;
韩曙亮
2023/10/11
3390
【Python】函数进阶 ④ ( Lambda 匿名函数 | 具名函数与匿名函数 | Lambda 函数定义语法 )
强大的匿名函数lambda使用方法,结合map、apply等
在Python中,lambda的语法形式如下: lambda argument_list: expression lambda是Python预留的关键字,argument_list和expression由用户自定义。
自学气象人
2022/11/14
1.6K0
强大的匿名函数lambda使用方法,结合map、apply等
Python的lambda表达式、filter、map、reduce等函数的用法
参考链接: Python lambda (匿名函数) | filter, map, reduce
用户7886150
2021/01/12
9590
[Python]中filter、map、reduce、lambda的用法
原文链接:http://blog.csdn.net/humanking7/article/details/45950985
祥知道
2020/03/10
6410
[编程经验]Python中的Lambda,Map, Reduce小结
今天要和大家分享的是Python匿名函数(anonymous functions),也叫lambda函数。匿名函数的意思就是说这个函数没有显式的函数名,因为一般在Python中定义函数的时候都是这个样子的,def function_name(参数列表): balabalaba。暂且把具有function_name的函数称作常规函数,而匿名函数就称作lambda函数。匿名函数没有显式的函数名,但是有显式的lambda标志,写了lambda的函数就可以称作匿名函数。一般情况大家不愿意用匿名函数(因为他 们不会用
用户1622570
2018/04/11
8500
python中的zip、lambda、map操作
python 中有几个比较酷炫的操作,比如:zip、lambda、map 一、zip操作 zip字面意思:拉链。这么记,把几个东西扔到一个包里,拉上拉链,就算打包好了。通俗点讲,就是把第1个参数,与第2个参数,按位置1个个对齐,组成一系列元组. x = (1, 2) y = ("a", "b") zip_result = zip(x, y) print(list(zip_result)) x = [4, 5, 6] y = ['d', 'e'] zip_result = zip(x, y) print(
菩提树下的杨过
2018/04/16
1K0
lambda函数
lambda函数就是我们常说的匿名函数,就是不用定义函数名,lambda更像是一个表达式,限制了程序的嵌套,是一个为编写简单的函数而设计的。
dogfei
2020/07/31
9340
python的lambda函数
在Python中,lambda函数是一种匿名函数,也被称为"小型"或"即时"函数。与常规的函数不同,lambda函数没有名称,并且通常用于单行代码的简单功能。它们的语法如下:
叶茂林
2023/07/30
2450
set map list 之间的关联关系
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
suveng
2019/09/17
4640
set map list 之间的关联关系
详细讲解:python中的lambda与sorted函数
python中的lambda函数可以接受任意数量的参数,但只能有一个表达式。也就是说,lambda表达式适用于表示内部仅包含1行表达式的函数。那么lambda表达式的优势就很明显了:
计算机与AI
2020/12/14
2.8K0
详细讲解:python中的lambda与sorted函数
java8之后的List与Map遍历(Lambda 表达式)
不要在foreach循环里进行元素的remove/add操作。remove元素请使用Iterator方式,如果并发操作,需要对Iterator对象加锁。
向着百万年薪努力的小赵
2022/12/01
6740
【Python】PySpark 数据计算 ① ( RDD#map 方法 | RDD#map 语法 | 传入普通函数 | 传入 lambda 匿名函数 | 链式调用 )
在 PySpark 中 RDD 对象 提供了一种 数据计算方法 RDD#map 方法 ;
韩曙亮
2023/10/11
7380
【Python】PySpark 数据计算 ① ( RDD#map 方法 | RDD#map 语法 | 传入普通函数 | 传入 lambda 匿名函数 | 链式调用 )
学习LAMBDA函数:将Excel公式转换为自定义函数(下)
引言:本文学习整理自microsoft.com,LAMBDA的真正的解决了Excel公式存在的先天不足,让Excel公式真正的强大起来了。
fanjy
2023/02/16
2.5K0
学习LAMBDA函数:将Excel公式转换为自定义函数(下)
点击加载更多

相似问题

Ethereum闹钟还活着吗?

30

钱包格栅攻击还存在吗?

10

紫红色的纸还真的吗?

10

瓦斯用完了,还能还吗?

10

坚固的还绳不十六进制吗?

10
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文