BeanShell松散类型的Java语法

简介:

上一章节的例子中,所有变量都有定义类型。如“JButton button”的类型。BeanShell 将强制执行这些类型的变量。你会发现如果你试图分配非 JBuoon 的类型给变量“button”(你会得到一个错误的消息),BeanShell会对它进行类型强制转换。然而,BeanShell 同样支持“松散的”或者动态地指定类型类型。也就是说,你可以不需要先定义变量以及指定特定的变量类型来指向变量(比如:" hashtable = new Hashtable(); "hashtable 是一个未定义且没有指定类型的变量)。既然如此,BeanShell 将酌情在运行时做类型检查。所以,我们可以在之前的例子中去掉左边的类型来运行,如下:

 

原来的代码:

 

Hashtable hashtable = new Hashtable();
Date date = new Date();
hashtable.put( "today", date );
// 打印当前系统的时间值
print( System.currentTimeMillis() );

 

JButton button = new JButton( "My Button" );
JFrame frame = new JFrame( "My Frame" );
frame.getContentPane().add( button, "Center" );
frame.pack();
frame.setVisible(true);

松散类型的写法(去掉左边的类型定义,包括“Hashtable hashtable”中的“Hashtable”,“Date date”中的“Date”等):

  

这样看起来似乎并没有为我们节省大量的工作。但是当你渐渐依赖写脚本,把它作为你开发和测试过程中的一部分,你就会发现与以前的开发大有不同。尤其在交互式的使用中。

 

当你使用“松散”的变量时,你可以在之后的使用中自由地将它重新指派给另一个 Java 对象类型。没有指定类型的 BeanShell 变量也可以自由地持有像 int 和 boolean一样的 Java 原始类型。别担心,BeanShell 总是知道变量的真实类型而且只是酌情地让我们使用这些变量。对于原始类型,这包括当你在表达式中使时真正的 Java 语言会做正确的数字类型提升。(说明类型提升规则的例子:byte型和short型的值被提升到int


本文转自 tongqiuyan  51CTO博客,原文链接:http://blog.51cto.com/tongqiuyan/747731


相关文章
|
3天前
|
Java 编译器 程序员
Java基础语法之基本语法格式
本文主要复习了Java的基础语法,包括类的定义、方法、主方法、注释和关键字等内容,旨在帮助读者巩固Java学习中的重要概念。
|
7天前
|
Java
Java String类型转换成Date日期类型
Java String类型转换成Date日期类型
|
7天前
|
关系型数据库 MySQL Java
Java时间转换为MySQL中的INT类型时间戳
Java时间转换为MySQL中的INT类型时间戳
|
8天前
|
Java 编译器
【Java探索之旅】解密Java中的类型转换与类型提升
【Java探索之旅】解密Java中的类型转换与类型提升
16 0
|
8天前
|
存储 Java 程序员
JAVA基本语法
JAVA基本语法
16 1
|
11天前
|
安全 Java 程序员
Java 泛型类型:变幻中的不变性
【4月更文挑战第21天】
6 1
Java 泛型类型:变幻中的不变性
|
12天前
|
XML SQL 前端开发
【Java】实体字段传参类型线上问题记录
【Java】实体字段传参类型线上问题记录
22 1
|
13天前
|
存储 Java
Java入门&基础语法
Java入门&基础语法
|
13天前
|
存储 Java 程序员
Java从入门到精通:1.1.1了解Java基础知识:学习Java的基本语法
Java从入门到精通:1.1.1了解Java基础知识:学习Java的基本语法
|
14天前
|
存储 Java
JAVA变量类型
JAVA变量类型
16 0