8. 从Lotusscript到Java
来源:互联网 发布:java是什么意思程序 编辑:程序博客网 时间:2024/05/21 08:51
首先是语法的差异。这是最明显也最容易注意到的。比如下面这些基本的差别
Lotusscript
Java
大小写
不敏感
敏感
句末
无
分号
变量声明
Dim variable as type
Type variable;
错误处理
On error goto
try{}catch{}
对象和值变量
区分,给对象变量赋值时需Set
不区分
此外还有函数的声明、调用,Lotusscript中各种流程控制的结构都有不同的开始和结束语句而Java中使用()和{}完成等等。
这些只要了解对应的语法,都很容易将Lotusscript的代码移植到Java。容易出错的是这样一些规则上的细微差别。
Lotusscript
Java
判断两表达式是否相等
比较两个值时用=,比较对象时用Is。
==
Select/Switch结构
每个条件执行的语句后不需要break。
需要break。
判断字符串是否相等
=
需使用字符串的equals方法。
字符串在Java中是对象。==比较的是两个对象变量的全等性,即两者是否指向同一对象。
两个来源不同的字符串,即使内容相同,也是不同的对象。
String s1=”abc”;
String s2=”abc”;
s1==s2; //false
s1.equals(s2); /true
定义常量
使用Const关键字
虽然Java保留了const关键字,但是使用final关键字标识一个字段不能改变(相当于定义常量)。
再次是Java与Lotusscript特性的差别,包括Domino对象的API。
- Lotusscript中大量使用variant。这是一种标记了自身类型的多用途的数据结构。它使得一个函数可以处理多种不同的参数类型,比如Format。而且可以包含数组,使得数组的赋值和传递、返回成为可能。使用它,还可以形成一种“后期绑定”的效果,将不同类型又具有同样方法的对象用一个变量表示。Java中具有类似效果的就是Object。但是我们很少直接使用它,因为Java是一种强类型的静态语言,需要明确指定变量的类型。而且variant在Lotusscript的功能都被Java的特性一一实现。函数的多种不同的参数类型通过方法的重载解决。数组本身可以被传递给函数和被返回。“后期绑定”的效果可以通过类继承和接口实现。
- 为了使得一个函数能处理不同参数的情况,Lotusscript采用的方式是Variant和可选参数,Java则是通过方法重载。
- Domino对象的Lotusscript
API经常返回可变长度的数组,比如NotesDocument.GetItemValue()。在JavaAPI中,这些数组都被Vector代替,要取其中某个值时需要调用Vector.get()方法,或者在最常见的取仅有的第一个值时使用getItemValueAsString/Integer/Double()。 - Lotusscript中含有一些用于与用户交互的语句,比如MessageBox,也可以访问Notes前端对象。Java只能访问Notes后端对象,并且与用户的交互需要通过页面和具体的控件、Javascript实现。
- Lotusscript中Variant未赋值时可用IsEmpty检测是否为空,对象变量未赋值时为Nothing,NotesAPI在未能获得有效对象时也返回Nothing。在Java中,这些都被null代替。
最后是Java开发在Domino领域特别需要注意的,这些方面即使是Java的老手也会觉得陌生。这主要包括两点:
- 对象的回收
- 安全性暨Session的创建
这两点都需要较长的说明,之后会专门介绍。
- 8. 从Lotusscript到Java
- LotusScript中调用Java类
- 从C++到JAVA
- 从JAVA到.NET
- 从c++到java
- 从.NET到Java
- 从C++到Java
- 从.net到java
- 从Java到ABAP
- 从 C++ 到 JAVA
- 从 Java 到 Ruby
- 从.Net到Java
- 从java到c++
- 从 c# 到java
- 从PHP 到JAVA
- 从C++到JAVA
- 从Java到Swift
- 从Java到Kotlin
- 枚举(Enumeration0)与迭代器(Iterator)
- rac中并行的设置
- CString.Format的详细用法(转)
- 如何使用ExternalContext类(二)
- inux下获取系统时间的方法
- 8. 从Lotusscript到Java
- javascript之数组操作
- 如何运用 Form 表单认证---------重定向到登陆页面
- sql读取数字时是否四舍五入
- 2012.12.11 知识点
- AutoCompleteTextView(自动提示)
- 李嘉诚的经典演讲:打工才是最愚蠢的投资
- PHP通过访客来路获取搜索关键词的方法
- 墨者:美联储会议持谨慎态度,贵金属隔夜震荡收