---
schema_version: "1"
id: d3cd190665d518c67a016cd2f6023ab48bd2e5f08f7e84b7cc9db1928012ceb7
title: Result オブジェクト
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/mule-sdk/1.1/result-object.md
canonical_url: https://docs.mulesoft.com/jp/mule-sdk/1.1/result-object
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 815b8c8027b7f3d578b86a4862035a014b0f32927330e972c45aa3a5ee827886
description: MuleSoft Documentation Site
release: "1.1"
latest: false
---
# Result オブジェクト

`Result`​ オブジェクトは、コンポーネントの実行結果を表します。このオブジェクトは、コンポーネントがメッセージペイロードに値を設定して戻す必要があるケースだけではなく、メッセージ属性や MIME タイプを指定するケースでも使用されます。

クラスには、ペイロードに格納される値の型と、返されるメッセージ属性の型の 2 つの汎用型があります。

ファイルコネクタの ​`read`​ 操作を大幅に簡素化した例を示します。この操作は、ペイロードをファイルの内容を含む ​`InputStream`​ に設定します。また、属性をファイル名、サイズ、タイムスタンプ、権限などの情報が入った ​`FileAttributes`​ オブジェクトに設定します。

```java
public Result<InputStream, FileAttributes> read(String path) { (1)
  InputStream content = getContent(path);
  FileAttributes attributes = getAttributes(path);

  return Result.<InputStream, FileAttributes>builder() (2)
        .output(content) (3)
        .attributes(attributes) (4)
        .build(); (5)
}
```

<table><tbody><tr><td><i class="conum" data-value="1"></i><b>1</b></td><td>操作は ​<code>Result&lt;InputStream, FileAttributes&gt;</code>​ を返します。これは、操作が ​<code>InputStream</code>​ をペイロードとして、​<code>FileAttributes</code>​ を属性として返すことを Runtime に通知します。</td></tr><tr><td><i class="conum" data-value="2"></i><b>2</b></td><td>結果値を取得すると、​<code>Result.builder()</code>​ を使用して新しいインスタンスを作成します。この値は厳密に型指定されているため、ビルダーを作成する際には汎用型を指定する必要があります。</td></tr><tr><td><i class="conum" data-value="3"></i><b>3</b></td><td>ビルダーの ​<code>output(Object)</code>​ メソッドは、ペイロードの設定に使用します。</td></tr><tr><td><i class="conum" data-value="4"></i><b>4</b></td><td><code>attributes(Object)</code>​ は、属性の設定に使用します。</td></tr><tr><td><i class="conum" data-value="5"></i><b>5</b></td><td>例では、​<code>build()</code>​ メソッドをコールして、作成された ​<code>Result</code>​ を返しています。</td></tr></tbody></table>

## [](#mime-タイプの設定)MIME タイプの設定

`Result`​ オブジェクトを使用して出力の MIME タイプを設定できます。前述の例を少し変えて、操作でファイルの最適な MIME タイプをファイル拡張子から推定します。

```java
public Result<InputStream, FileAttributes> read(String path) {
  InputStream content = getContent(path);
  FileAttributes attributes = getAttributes(path);

  MediaType guessedMediaType = MediaType.ANY;
  if (path.endsWith(".json")) {
    guessedMediaType = MediaType.APPLICATION_JSON;
  } else if (path.endsWith("*.xml")) {
    guessedMediaType = MediaType.APPLICATION_XML;
  } else if (path.endsWith("*.bin")) {
    guessedMediaType = MediaType.BINARY;
  }

  return Result.<InputStream, FileAttributes>builder()
        .output(content)
        .attributes(attributes)
        .mediaType(guessedMediaType)
        .build();
}
```

<table><tbody><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content">上記の例では、​<code>MediaType</code>​ クラスは ​<code>@MediaType</code>​ アノテーション付きではなく、Mule API の ​<code>org.mule.runtime.api.metadata.MediaType</code>​ となっています。</td></tr></tbody></table>

## [](#void-属性)void 属性

ペイロードと MIME タイプを設定し、属性は設定しない場合、void 型を使用します。次に例を示します。

```java
public Result<InputStream, Void> read(String path) {
  InputStream content = getContent(path);

  return Result.<InputStream, Void>builder()
        .output(content)
        .mediaType(bestGuessMediaType(path))
        .build();
}
```