12

Java と Android ではArrayList<String>、標準よりも使いやすいので、供給リストに使用することになりますString[]。私の本当の質問はこれです:呼ばれた部分は

何ですか? クラスを作成して[modifier] を使用するにはどうすればよいですか? (実際に何と呼ばれているかはわかりませんので、今のところ修飾子です)。ありがとう!<String>ArrayList<String>
<>

4

6 に答える 6

8

ここでは、おそらくより明確に表示されます。

ArrayList<TypeOfYourClass>

このスニペットが示すように、Person クラスを作成して ArrayList に渡すことができます。

ArrayList<Person> listOfPersons = new ArrayList<Person>();
于 2013-03-28T14:14:19.643 に答える
5

<String>部分は型引数です。メソッドがある場合と同じように、 in ... である型パラメーターの並べ替えの「値」を提供します。EArrayList<E>

public void foo(int x)

そして、あなたはそれを次のように呼び出します:

foo(5)

パラメータはxで、指定された引数は です5。基本的に、型パラメーターと型引数は一般的な同等のものです。

詳細については、JLS のセクション 4.5 (およびそこからのリンク) を参照してください。ジェネリックに関する詳細については、Java Generics FAQを参照してください。

于 2013-03-28T14:10:07.137 に答える
2

間のビット<>は型引数であり、機能はGenericsと呼ばれます

于 2013-03-28T14:11:32.493 に答える
2

ArrayList を文字列だけで埋めたいとします。あなたが書く場合:

ArrayList<String> list = new ArrayList<String>();
    list.add("A");
    list.add("B");
    list.add("C");

誰かが arrayList に int を入力しようとすると、コンパイル時に検出されます。

したがって、ジェネリックは、このような制限を適用したい状況で使用されます。

于 2013-03-28T14:17:55.780 に答える
1

Javaのジェネリック構文を調べます。これで問題は解決します (まあ、まあ、多くの人は Java のアプローチが C++ や C# よりも劣っていると感じています)。

于 2013-03-28T14:11:49.287 に答える
1

は型パラメータです。Java では、クラスがジェネリックとして記述されるときに、これらのいずれかを提供する必要があります。

ジェネリック クラス定義の例を次に示します。

private class GNode<T>
{
    private T data;
    private GNode<T> next;

    public GNode(T data)
    {
        this.data = data;
        this.next = null;
    }
}

渡す任意のタイプのノードを作成できるようになりました。T は、クラス定義のジェネリック型パラメーターとして機能します。整数のノードを作成する場合は、次のようにします。

 GNode<Integer> myNode = new GNode<Integer>();

型パラメーターはオブジェクトでなければならないことに注意してください。これは、Java の自動ボックス化と自動ボックス化解除によって機能します。これは、Java プリミティブ型を使用できず、代わりに対応するクラスを使用する必要があることを意味します。

Boolean instead of bool
Integer instead of int
Double instead of double 
etc...

また、型パラメーターを渡さない場合でも、コードはコンパイルされると確信しています。しかし、それはうまくいきません。

于 2013-03-28T14:19:00.643 に答える