0

「Lorg/demo/framework/FigureEnumeration;」のようなクラスを含む署名があります。

私の質問は、署名を使用してクラスまたはクラスのインスタンスを取得する方法はありますか? このクラスが Interface かどうかを確認したいのと、フィールドからこの署名に到達するため、つまりフィールドの型が "FigureEnumeration" であるため、BcelField クラスを使用して署名を取得します。

私の質問が誰にとっても非常に明確であることを願っています。

前もって感謝します!

4

2 に答える 2

0

与えられた:

String className = "Lorg/demo/framework/FigureEnumeration;";

最初に名前を消去する必要があります。

// remove beginning chars that aren't a lowercased alpha char
// /!\ class must be in a package
className = className.replaceFirst("^[^a-z]+", "");
// remove ending chars that aren't an alpha char
className = className.replaceFirst("[^a-zA-Z]+$", "");
// replace any slash by a dot
className = className.replaceAll("/", ".");

次に、リフレクションを使用します。

Class<?> clazz = Class.forName(className);
于 2013-11-13T16:08:55.917 に答える