ホームページ > Java > &#&チュートリアル > Java ノート: ジェネレーターの使用方法

Java ノート: ジェネレーターの使用方法

无忌哥哥
リリース: 2018-07-20 11:01:57
オリジナル
2362 人が閲覧しました

1. はじめに

前回のブログ投稿で説明したイテレーターとは異なり、この記事ではジェネレーター Generator について説明します。両者には大きな違いがあります。イテレータはコンテナ内の要素を走査するために使用されます。Java 標準ライブラリには Iterator インターフェイスとその実装がありますが、ジェネレータはオブジェクトの作成に使用されません。
[注: ここでのジェネレーター Generator と、デザイン パターンのジェネレーター パターン (つまり、ビルダー パターン) は異なります]

2. はじめに

  1. ジェネレーター (Generator) です。オブジェクトの作成に特別に使用されるクラス

  2. 実際には、ファクトリメソッドパターンのアプリケーションであり、インターフェイスに適用されるジェネリックスの一種です

  3. ジェネレーターを使用して新しいオブジェクトを作成する場合、オブジェクトを作成する必要はありませんパラメーターの使用 -> これはファクトリ メソッド パターンとの違いでもあります。ファクトリ メソッドには通常パラメーターが必要です

  4. 一般に、ジェネレーターは新しいオブジェクトを生成するために特別に使用されるメソッドを 1 つだけ定義します

3. ジェネレーター インターフェイス

Java 標準ライブラリには Generator インターフェイスが含まれていないため、ジェネレーターを独自に定義する必要があります。

[ジェネレーター]

/**
 - 生成器接口
 - @author johnnie
 - @param <T>
 */
public interface Generator<T> {

    /**
     - 用以产生新对象
     - @return
     */
    public T next();

}
ログイン後にコピー

4. ジェネレーターの使い方

[サンプルコード]

/**
 - Generator 的实现类
 - @author johnnie
 *
 */
public class PersonGenerator implements Generator<Person> {

    private Class[] types = new Class[]{Person.class};

    public PersonGenerator() {  }

    @Override
    public Person next() {
        try {
            // 利用反射生成 Person 对象
            return (Person) types[0].newInstance();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }

        return null;
    }

    public static void main(String[] args) {
        PersonGenerator generator = new PersonGenerator();
        Person person = generator.next();
        person.setId(0);
        person.setName("johnnie");
        person.setSex("Man");
        System.out.println(person);
    }

}
ログイン後にコピー

[出力]

Person [id=0, name=johnnie, sex=Man]
ログイン後にコピー

以上がJava ノート: ジェネレーターの使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート