データ型のマッピング

LotusScript® は、Java™ の基本的なデータ型と Java 参照型に関してマッピング機能を備えています。

基本的なデータ型

LotusScript データ型

マッピング先の Java データ型

Byte

byte 型

Boolean 型

boolean 型

Integer

short 型

Long 型

int 型

String

次の 3 つの Java データ型は、LotusScript の string 型にマッピングされます。

  • Java char 型 (LotusScript の長さ 1 の String 型にマッピングされます)
  • Java char array 型
  • java.lang.String

LotusScript から Java へのマッピングは、Java コードが型として求めるものにより異なります。「String 型のマッピングの例」を参照してください。

Single

float 型

Double 型

double 型

long 型

どちらのデータ型を使用するかは、Java コードが型として求めるものにより異なります

Variant 型は、それが含むどのデータ型にもマッピングされます。

注: Java byte 型には符号が付きますが (-128 から +127 の範囲)、LotusScript の Byte 型には符号が付きません (ゼロから 255 の範囲)。

Java byte 型の -128 から -1 の値は、LotusScript の Byte 型の +128 から +255 の値にマッピングされます。Java byte 型のゼロから +127 までの値は、LotusScript のゼロから +127 までの同じ値にマッピングされます。

Java byte 型の値

LotusScript Byte 型の値

-128

+128

-127

+129

-126

+130

...

...

-2

+254

-1

+255

0

0

1

1

...

...

+126

+126

+127

+127

注: LotusScript のデータ型は、Get/Set プロパティ、Java メソッドの引数、戻り値の Java データ型に代わるものとして使用できます。

Java の精度と long データ型の概要

Java long データ型の範囲は次のとおりです。

min -2^63 == -9,223,372,036,854,775,808 == approx. -9.22337203685478E+18

max +2^63 - 1 == +9,223,372,036,854,775,807 == 約 +9.22337203685478E+18

ただし、floating-point 型の精度が低いので、LS2J ではおおよそ次のような小さな範囲だけをサポートしています。

+- 9,223,372,036,854,770,000 == +- 9.22337203685477E+18

この範囲はプラットフォームによって若干異なります。この制限範囲外の LotusScript の値が Java long データ型に渡されると、LS2J は「式が範囲外です。」というエラーをスローします。

サポートの範囲内であっても、15 桁の精度しか使用できません。つまり、Java long データ型は、次の範囲内で予測可能な LotusScript の整数値にマッピングされます。

+- 1,000,000,000,000,000 == +- 1.0E+15

String 型のマッピングの例

LSStrings.java:

public class LSStrings
{
	public char    F1;
	public char [] F2;
	public String F3;
	public char    M1(char p)    { return p; }
	public char [] M2(char [] p) { return p; }
	public String M3(String p) { return p; }
}

LSStrings.lss:

Option Public
Uselsx "*javacon"

Dim mySession As JavaSession

Sub Initialize
	Dim myClass As JavaClass, myObject As JavaObject, s1 As String, _
		s2 As String, s3 As String
	s1 = "A"
	s2 = "BC"
	s3 = "DE"
	Set mySession = New JavaSession ("¥LSI¥test¥java;")
	Set myClass = mySession.GetClass("LSStrings;")
	Set myObject = myClass.CreateObject
	myObject.F1 = s1
	myObject.F2 = s2
	myObject.F3 = s3
	MsgBox myObject.F1 & myObject.F2 & myObject.F3 & _
    myObject.M1(s1) & myObject.M2(s2) & myObject.M3(s3)
	' Displays "ABCDEABCDE"
End Sub

Java 参照型

Java 参照型は、次のようにサポートが制限されています。

引数を処理する

すべてのプリミティブな型と Java オブジェクトは、引数として直接 JavaMethods に渡すことができます。参照型については、LotusScript はまだ参照による呼び出しのセマンティクスをサポートしていません。単一次元配列を Java メソッドに渡すことはできますが、その結果は LotusScript の領域にコピーされません。LotusScript は Java オブジェクトの配列で渡すこともサポートしていません。

制限

重要な制限事項があります。


追加の資料 | 商標 (英語) |