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 回答