0
package MyTest;

import java.lang.reflect.*;

public class CallingMethod {
    public static void main(String[] args) {
        String firstName = new String("Deepak");
        String lastName = new String("Kumar");
        String result = new String("");

        Class<String> cls = String.class;
        Class[] parametertype = new Class[] { String.class };
        Object[] arguments = new Object[] { lastName };
        try {
            Method concatMethod = cls.getMethod("concat", parametertype);
            result = (String) concatMethod.invoke(firstName, arguments);
            System.out.println(" Concatenated String is => " + result);
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}

上記のコードについては、以下の部分がわかりません。

Class<String> cls = String.class;
Class[] parametertype = new Class[] { String.class };
Object[] arguments = new Object[] { lastName };

では、どういうString.class意味ですか?そしてString.classnew Class[] { String.class }どういう意味ですか?配列の最初の項目がString.class型であることを意味しますか?またはすべてのアイテムはString.classタイプですか?そしてnew Object[] { lastName }?これは、配列の最初のアイテム/インスタンスがlastNameであることを意味しますか?あなたの専門知識を得ることを願っています!ありがとう!

4

4 に答える 4

1

このコードは、リフレクションとメソッド呼び出しを使用して、引数パラメーターを使用して、オブジェクトのクラスconcat内のメソッドを呼び出しています。これは、次の呼び出しに似ています。StringfirstName

result = firstName.concat(lastName);
于 2012-09-15T16:31:29.693 に答える
1
  • Class<String> cls = String.class;Stringクラスを参照するClassオブジェクトです。
  • Class[] parametertype = new Class[] { String.class };1つの要素を含むClassオブジェクトの配列です。String.class
  • Object[] arguments = new Object[] { lastName };1つの要素も含むオブジェクトの配列です
于 2012-09-15T16:32:18.507 に答える
1

では、String.classはどういう意味ですか?

文字列クラスへの参照

そして、新しいClass [] {String.class}のString.classは何を意味しますか?

文字列クラスへの参照が1つあるクラスの配列。

配列の最初の項目がString.class型であることを意味しますか?

最初の要素のタイプはクラスまたはClass<String>

そして、新しいObject [] {lastName}?これは、配列の最初のアイテム/インスタンスがlastNameであることを意味しますか?

はい。

以下の部分がわかりません。

あなたはすべての質問で正しいように見えるので、あなたはずっと正しかったようです。

他に質問はありますか?

于 2012-09-15T16:32:31.473 に答える
1

Javaのすべてのオブジェクトは、StringMyClassなどのタイプに関連付けられています。タイプ自体は別のオブジェクトによって実装されます。したがって、 String.classMyClass.classは、これらのタイプのクラスオブジェクトを参照しています。

于 2012-09-15T16:32:39.383 に答える