Javaジェネリックメソッド:
ジェネリックが何を意味するのかについてはあまり語りません。たとえば、Javaのジェネリッククラスの定義も比較的単純です:パブリッククラスのテスト<t> {}。これにより、一般的なクラステストが定義されます。このクラスをインスタンス化する場合、特定のタイプの汎用Tを指定する必要があります。たとえば、test <Object> t = new test <Object>();、一般的なtのタイプがオブジェクトであることを示します。
しかし、Javaの一般的な方法はより複雑です。
一般的なクラスは、クラスをインスタンス化する際の汎用の特定のタイプを示します。一般的なメソッドは、メソッドを呼び出す際の汎用の特定のタイプを示します。
一般的な方法を定義するための構文形式は次のとおりです。
一般的な方法を呼び出す構文形式は次のとおりです。
説明するには、一般的な方法を定義する場合、a <t>を返す値に追加して、これが汎用Tを保持している一般的な方法であることを宣言し、次に一般的なtをメソッドの返品値として使用できます。
クラス<t>の関数は、一般的なタイプの特定のタイプを示すことであり、クラス<T>タイプの変数Cを使用して、汎用クラスのオブジェクトを作成できます。
変数cを使用してオブジェクトを作成するのはなぜですか?それは一般的な方法であるため、特定のタイプが何であるか、またはコンストラクターの方法が何であるかわからないことを意味します。したがって、オブジェクトを新たにする方法はありませんが、変数CのNewinstanceメソッドを使用してオブジェクトを作成できます。つまり、反射を使用してオブジェクトを作成できます。
一般的な方法で必要なパラメーターはタイプクラス<t>であり、class.forname()メソッドの戻り値もclass <t>であるため、class.forname()をパラメーターとして使用できます。その中で、forname()メソッドのパラメーターと、返されたクラス<t>のパラメーターはどのタイプですか。この例では、forname()メソッドはユーザークラスの完全なパスに渡されるため、型クラス<user>のオブジェクトが返されます。したがって、一般的な方法を呼び出す場合、変数cのタイプはclass <user>であるため、一般的な方法の汎用tはユーザーとして示されているため、可変objのタイプはユーザーです。
もちろん、一般的な方法は1つのパラメータークラス<t>だけであるだけでなく、必要に応じて他のパラメーターを追加できます。
なぜ一般的な方法を使用するのですか?一般的なクラスは、インスタンス化されたときにタイプを示す必要があるため、タイプを変更する場合は、それを更新する必要があります。一般的な方法では、呼び出されたときに型を示すことができますが、これはより柔軟です。
読んでくれてありがとう、私はそれがあなたを助けることができることを願っています。このサイトへのご支援ありがとうございます!