0

Android には、「android.graphics.FontFamily」という名前の宣言されていない (非表示の) クラスがあり、その静的配列を作成したいと考えています。このようなもの:

Class<?> clazz = Class.forName("android.graphics.FontFamily"); // Ok.
Class<?> clazz_array = Class.forName("android.graphics.FontFamily[]"); // Method threw 'java.lang.ClassNotFoundException' exception.

この架空のコードを構築するには:

FontFamily[] families = {fontFamily};

どうすればいいですか?

ありがとうございました。

4

2 に答える 2

3

反射的に配列を作成してから、そのクラスを取得できるはずです。例:

Class <?> clazz = Class.forName("android.graphics.FontFamily");
Object fontFamily = clazz.newInstance();
Object families = Array.newInstance(clazz, 1);
Array.set(families, 0, fontFamily);
于 2016-06-05T08:59:13.893 に答える
1

Classドキュメントで指定されている完全修飾名を指定する必要があります。したがって、あなたの場合は次のようになります。

Class<?> clazzArray = Class.forName("[Landroid.graphics.FontFamily;");

[配列を示し、L接頭辞とセミコロン接尾辞は、中間の部分がクラス名であることを示すためのものです。

于 2016-06-05T09:04:18.830 に答える