本篇文章给大家介绍一下JAVA中的“->”的意思。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

在《JAVA核心编程》中,有一段这样的代码

import javax.swing.*;
import java.awt.*;
import java.io.File;public class ImageViewer {public static void main(String[] args){EventQueue.invokeLater(() -> {JFrame frame = new ImageViewerFrame();frame.setTitle("ImageViewer");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);});}
}
class ImageViewerFrame extends JFrame{private JLabel label;private JFileChooser chooser;private static final int DEFAULT_WIDTH = 300;private static final int DEFAULT_HEIGHT = 400;public ImageViewerFrame(){setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);label = new JLabel();add(label);chooser = new JFileChooser();chooser.setCurrentDirectory(new File("."));JMenuBar menuBar = new JMenuBar();setJMenuBar(menuBar);JMenu menu = new JMenu();menuBar.add(menu);JMenuItem openItem = new JMenuItem("open");menu.add(openItem);openItem.addActionListener(Event -> {int result = chooser.showOpenDialog(null);if (result == JFileChooser.APPROVE_OPTION){String name = chooser.getSelectedFile().getPath();label.setIcon(new ImageIcon(name));}});JMenuItem exitItem = new JMenuItem("exit");menu.add(exitItem);exitItem.addActionListener(Event -> System.exit(0));}
}

可以看到两处这样的代码

() -> {JFrame frame = new ImageViewerFrame();frame.setTitle("ImageViewer");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);}
Event -> {int result = chooser.showOpenDialog(null);if (result == JFileChooser.APPROVE_OPTION){String name = chooser.getSelectedFile().getPath();label.setIcon(new ImageIcon(name));}

Java8的lambda表达式。就是匿名函数。

上面那一段可以看成如下:

EventQueue.invokeLater(new Runnable() {public void run() {JFrame frame = new ImageViewerFrame();frame.setTitle("ImageViewer");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);}});

下面一段可以看成:

openItem.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {int result = chooser.showOpenDialog(null);if (result == JFileChooser.APPROVE_OPTION){String name = chooser.getSelectedFile().getPath();label.setIcon(new ImageIcon(name));}}});

只不过java自动帮你翻译了一下

推荐:《java视频教程》

JAVA中的->是什么意思?相关推荐

  1. java中实现具有传递性吗_Java中volatile关键字详解,jvm内存模型,原子性、可见性、有序性...

    一.Java内存模型 想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的. Java内存模型规定了所有的变量都存储在主内存中.每条线程中还有自己的工作内存,线程的工作 ...

  2. java中调用python

    在Java中调用Python </h1><div class="clear"></div><div class="postBod ...

  3. java中hashcode_浅谈Java中的Hash值

    1.Hash值有什么用? HashMap.HashTable.HashSet,所以涉及到使用Hash值进行优化存储的地方,都会用到HashCode.HashCode是Key,这种计算为提高计算的性能. ...

  4. JAVA中获取当前系统时间

    JAVA中获取当前系统时间 转自:http://www.cnblogs.com/Matrix54/archive/2012/05/01/2478158.html 一. 获取当前系统时间和日期并格式化输 ...

  5. Java中的对象和包

    什么是对象 对象就是实际生活中的事物,可以说一切事物都是对象. 对象的三个特点 1  对象的行为:这个对象能做什么, 例如包子是用来吃的 2  对象的状态:对象保持的一种状态,例如这个包子是热的还是凉 ...

  6. java中标识符,关键字,数据类型

    什么是标识符? 在java语言中用来给一个类,变量或方法命名的符号 标识符的命名规则 标识符可以由字母.数字.下划线(_).美元符($)组成,但不能包含 @.%.空格等其它特殊字符,不能以数字开头. ...

  7. Java中byte与16进制字符串的互相转换

    https://www.cnblogs.com/qinwangchen/p/5418028.html * Convert byte[] to hex string.这里我们可以将byte转换成int, ...

  8. JAVA中priorityqueue详解

    Java中PriorityQueue通过二叉小顶堆实现,可以用一棵完全二叉树表示.本文从Queue接口函数出发,结合生动的图解,深入浅出地分析PriorityQueue每个操作的具体过程和时间复杂度, ...

  9. 使用java中replaceAll方法替换字符串中的反斜杠

    今天在项目中使用java中replaceAll方法将字符串中的反斜杠("\")替换成空字符串(""),结果出现如下的异常: 1 java.util.regex. ...

  10. java 中常用的类

    java 中常用的类 Math Math 类,包含用于执行基本数学运算的方法 常用API 取整 l  static double abs(double  a) 获取double 的绝对值 l  sta ...

最新文章

  1. 人体姿态估计研究文集
  2. hibernate自动添加永真1=1,导致Druid sql防火墙报错的问题
  3. 徐小平:全员拥抱区块链是内部分享 1比特币寻泄密者
  4. 【剑指offer】面试题65:不用加减乘除做加法(Java)
  5. serversocket中的backlog是什么_输入网址按回车,到底发生了什么
  6. linux nginx编译安装mysql_Centos7下编译安装配置Nginx+PHP+MySql环境
  7. Python爬虫:用BeautifulSoup进行NBA数据爬取
  8. Dtree 添加 checkbox 复选框 可以默认选中
  9. SmartView函数HypSetActiveConnection使用
  10. 多吃什么食物可以明目护眼?
  11. 锁仓怎么解_锁仓后解锁技巧
  12. html 图片靠左浮动,float【css浮动】left靠左 right靠右属性图文教程
  13. 教父三部曲观后感总结
  14. 013-Vue:前端知识结构概述、基本语法、声明周期
  15. 充电系统(交流慢充,直流快充)
  16. 【目标检测】epoch、batch、batch_size理解
  17. 2019\National _C_C++_A\试题 A: 三升序列
  18. 通过ASP.NET Ajax技术模拟实现NBA比赛文字直播功能
  19. 电子设计教程15:三极管电平转换电路设计
  20. 听力完全攻略-陈海泓(转)

热门文章

  1. 单调区间之239.滑动窗口最大值
  2. UE4蓝图基础——蓝图流程控制节点
  3. 手术及切口分类与伤口愈合分级以及ASA麻醉分级
  4. The Principle of Success
  5. hadoop block split 区别
  6. 金融量化分析【day112】:量化平台的使用-初始化函数
  7. 【Windows任务管理器硬盘监控功能异常】任务管理器磁盘读写功能异常,无任何数据
  8. 消费者心理学:三个趣味经济学原理
  9. PAT甲级 1032 Sharing (25分) 测试点5陷阱
  10. Next.js---一个轻量级的 React SSR应用框架