簡単な Java クラスの作成と使用

データタイプにあまり制約がない ColdFusion とは異なり、Java は厳しくタイプ分けされた言語です。したがって、Java メソッドの呼び出しには、注意するべき点がいくつかあります。次の項では、Java クラスを作成および使用し、ColdFusion の各ページで Java を効率よく使用する方法を示します。

Employee クラス

Employee クラスには、4 つのデータメンバーがあります。FirstName および LastName は public であり、Salary および JobGrade は private です。また、Employee クラスは、オーバーロードされた 3 つのコンストラクタと、オーバーロードされた 1 つの SetJobGrade メソッドを持ちます。

ファイル Employee.java に次の Java ソースコードを保存してコンパイルし、その結果生成された Employee.class ファイルをクラスパスで指定されたディレクトリに配置します。

public class Employee {

public String FirstName;
public String LastName;
private float Salary;
private int   JobGrade;

public Employee() {
   FirstName ="";
   LastName ="";
   Salary = 0.0f;
   JobGrade = 0;
}

public Employee(String First, String Last) {
   FirstName = First;
   LastName = Last;
   Salary = 0.0f;
   JobGrade = 0;
}

public Employee(String First, String Last, float salary, int grade) {
   FirstName = First;
   LastName = Last;
   Salary = salary;
   JobGrade = grade;
}

public void SetSalary(float Dollars) {
   Salary = Dollars;
}

public float GetSalary() {
   return Salary;
}

public void SetJobGrade(int grade) {
   JobGrade = grade;
}

public void SetJobGrade(String Grade) {
   if (Grade.equals("CEO")) {
      JobGrade = 3;
   }
   else if (Grade.equals("MANAGER")) {
      JobGrade = 2;
   }
   else if (Grade.equals("DEVELOPER")) {
      JobGrade = 1;
   }
}

public int GetJobGrade() {
   return JobGrade;
}

}

Employee クラスを使用する CFML ページ

次のテキストを JEmployee.cfm として保存します。

<html>
<body>
<cfobject action="create" type="java" class="Employee" name="emp">
<!--- <cfset emp.init()> --->
<cfset emp.firstname="john">
<cfset emp.lastname="doe">
<cfset firstname=emp.firstname>
<cfset lastname=emp.lastname>
</body>

<cfoutput>
   従業員名は #firstname# #lastname# です。
</cfoutput>
</html>

このページをブラウザに表示すると、次の出力が表示されます。

従業員名は john doe です。

コードの確認

次の表で、前述の CFML コードについて説明します。

コード 説明
<cfobject action=create
type=java class=Employee
name=emp>

Employee Java クラスをロードし、これに emp というオブジェクト名を与えます。

<!--- <cfset emp.init()> --->

コンストラクタを呼び出しません。ColdFusion は、クラスを最初に使用する際 (この例では、次の行を処理する際) にデフォルトのコンストラクタを呼び出します。

<cfset emp.firstname="john">
<cfset emp.lastname="doe">

emp オブジェクトのパブリックフィールドに値を設定します。

<cfset firstname=emp.firstname>
<cfset lastname=emp.lastname>

emp オブジェクトからこのフィールドの値を戻します。

<cfoutput>
   従業員名は #firstname#
#lastname# です。 </cfoutput>

取り出した値を表示します。

Java に関する注意事項

Java クラスオブジェクトを使用して ColdFusion ページを記述する場合は、次に挙げる点に留意してください。

代替コンストラクタの使用

次の ColdFusion ページは、Employee オブジェクトの代替コンストラクタの 1 つを明示的に呼び出します。

<html>
<body>

<cfobject action="create" type="java" class="Employee" name="emp">
<cfset emp.init("John", "Doe", 100000.00, 10 )>
<cfset firstname=emp.firstname>
<cfset lastname=emp.lastname>
<cfset salary=emp.GetSalary()>
<cfset grade=emp.GetJobGrade()>

<cfoutput>
   従業員名は #firstname# #lastname# です。<br>
   従業員給与 : #DollarFormat(Salary)#<br>
   従業員階級 : #grade#
</cfoutput>

</body>
</html>

この例では、コンストラクタは 4 つの引数を取ります。最初の 2 つは文字列、3 つめは浮動小数点数、そして 4 つめは整数です。


ColdFusion MX 7 | ColdFusion MX 6.1 | ColdFusion MX* | ColdFusion 5* | フォーラム* | デベロッパーセンター | サポート情報 | バグ報告

バージョン7