---
schema_version: "1"
id: 64cae1d0e5a0752b36f2a65dc6e746f93a7667438fb6880ddec44448141df0ca
title: クラスのインスタンスの作成
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/java-module/1.2/java-create-instance.md
canonical_url: https://docs.mulesoft.com/jp/java-module/1.2/java-create-instance
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 3ec67ebc62b25e0ceab2c14334064b25a5799eb83cf0655bfbfe84a6ee8d98d4
description: MuleSoft Documentation Site
release: "1.2"
latest: false
---
# クラスのインスタンスの作成

## [](#java-コンストラクターのコール)Java コンストラクターのコール

このページの例は、​`com.me`​ パッケージに属する ​`Person`​ Java クラスに基づいています。

```java
package com.me;

public class Person {

    private String name;
    private Integer age;

    public Person() {
        this.name = "Max Mule";
        this.age = 10;
    }

    public Person(String name, Integer age) {
        this.name = name;
        this.age = age;
    }
}
```

<table>
<tbody><tr>
<td class="icon">
<i class="fa icon-important" title="Important"></i>
</td>
<td class="content">
<div class="paragraph">
<p>Java Module で使用するクラスはエクスポートする必要があります (デフォルトパッケージに属していない場合)。
エクスポートしないと、実行に失敗し、JAVA:CLASS_NOT_FOUND​ エラーが表示されます。
<a href="https://docs.mulesoft.com/mule-runtime/latest/how-to-export-resources" class="xref page">「リソースのエクスポート方法」</a>​を参照してください。</p>
</div>
</td>
</tr>
</tbody></table>

このクラスのコンストラクターは、Java Module の ​`new`​ 操作を使用してコールできます。 この例は、パラメーターが不要なコンストラクターを使用して ​`Person`​ のインスタンスを作成する方法を示しています。

```xml
<java:new class="com.me.Person" constructor="Person()"/>
```

パラメーターが必要なコンストラクターを使用して ​`Person`​ オブジェクトを作成する方法を次に示します。

```xml
<java:new class="com.me.Person" constructor="Person(String, Integer)">
    <java:args>#[{
      name: 'John Doe',
      age: 30
    }]</java:args>
</java:new>
```

コンストラクターのパラメーターでは、​`constructor="Person(java.lang.String, java.lang.Integer)"`​ などの完全なパッケージ名を指定できます。これは必要ありませんが、コードをより明確にしたり、Java コードに競合するクラス名がある場合に役立ちます。

<table>
<tbody><tr>
<td class="icon">
<i class="fa icon-important" title="Important"></i>
</td>
<td class="content">
<div class="paragraph">
<p><code>args</code>​ パラメーターにコンストラクターの引数を設定する場合は、マップのキーでパラメーターがコンストラクターに渡される方法を判断します。</p>
</div>
<div class="paragraph">
<p>パラメーターを名前 (​<code>firstName</code>​、​<code>age</code>​ など) で参照するには、 <a href="https://docs.oracle.com/javase/tutorial/reflect/member/methodparameterreflection.html"><code>-parameters</code></a>​ コンパイラーフラグを使用して、メソッドまたはコンストラクターを含む Java クラスをコンパイルする必要があります。</p>
</div>
<div class="paragraph">
<p>クラスが ​<code>-parameters</code>​ フラグを使用してコンパイルされていない場合は、同じパラメーターが宣言された順序と ​<code>arg0</code>​、​<code>arg1</code>​ のような正規名で参照されます。</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;java:args&gt;#[{
  arg0: 'John Doe',
  arg1: 30
}]&lt;/java:args&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Java クラスが Studio プロジェクトで定義されている場合、​<code>-parameters</code>​ フラグを使用して Java クラスをコンパイルするように Maven コンパイラープラグインを ​<code>pom.xml</code>​ で設定する必要があります。</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;plugin&gt;
    &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
    &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
    &lt;version&gt;x.x.x&lt;/version&gt;
    &lt;configuration&gt;
        &lt;compilerArgs&gt;
            &lt;arg&gt;-parameters&lt;/arg&gt;
        &lt;/compilerArgs&gt;
    &lt;/configuration&gt;
&lt;/plugin&gt;</code></pre>
</div>
</div>
</td>
</tr>
</tbody></table>

## [](#studio-での-datasense-サポート)Studio での DataSense サポート

Java Module を使用する利点の 1 つは ​[DataSense](https://docs.mulesoft.com/studio/datasense-concept)​ サポートです。これにより、​`new`​ 操作の入力として機能する ​`args`​ マップをビルドできます。

`new`​ 操作で ​`com.me.Person`​ クラスの ​`Person(String, Integer)`​ コンストラクターをコールする前記の例を続行し、グラフィカルビューの表示アイコン ​![5%](/mulesoft/current/ja-jp/java-module/1.2/_images/graphical-view.png)​ をクリックして、項目を照合するビューを表示します。フローの前のコンポーネントが (​[Set Payload](https://docs.mulesoft.com/mule-runtime/latest/set-payload-transformer-reference)​ コンポーネントでできることと同様に) ​`name`​ および ​`age`​ キーを含むマップを出力するとします。このビューは次のようになります。

![matching input](/mulesoft/current/ja-jp/java-module/1.2/_images/matching-input.png)

項目を左から右にドラッグアンドドロップすることで一致させることができます。これにより、次のようになります。

![matched input](/mulesoft/current/ja-jp/java-module/1.2/_images/matched-input.png)

`new`​ 操作が設定されて準備が整いました。

DataSense は、操作の出力のメタデータも提供します。​`new`​ 操作により、次に示すように ​`Person`​ オブジェクトが出力メッセージのペイロード内に配置されます。

![output metadata](/mulesoft/current/ja-jp/java-module/1.2/_images/output-metadata.png)

## [](#対象パラメーター)対象パラメーター

出力オブジェクトをペイロード内に配置する代わりに、​[対象パラメーター](https://docs.mulesoft.com/mule-runtime/latest/target-variables)​をサポートする ​`new`​ 操作で出力オブジェクトを変数に保存できます。

例:

```xml
<java:new class="com.me.Person"
    constructor="Person(String, Integer)"
    target="john">
    <java:args>#[{
      name: 'John Doe',
      age: 30
    }]</java:args>
</java:new>
```

出力オブジェクトは変数に保存され、​`"#[vars.john]"`​ として後からアクセスできるようになります。

## [](#関連情報)関連情報

- [メソッドの呼び出し](https://docs.mulesoft.com/jp/java-module/1.2/java-invoke-method)
- [クラスのインスタンスのテスト](https://docs.mulesoft.com/jp/java-module/1.2/java-instanceof)
- [Throwable の処理](https://docs.mulesoft.com/jp/java-module/1.2/java-throwable)