は配列desのフィールドではないため、コードはあまり意味がありません。ただし、クラスの名前を値として持つだけで、クラスで宣言されたフィールドにアクセスしようとしているようです。はインスタンス フィールドであるため、操作するには のインスタンスが必要です。次のようなことができます。StringclassNameAStringdesA
A a = (A) (Class.forName("A").newInstance());
System.out.println(a.des[0]);
これがスローする可能性のある潜在的な例外に対処するコードを追加する必要があります。また、 への引数Class.forNameはクラスの完全な名前である必要があることに注意してください。したがって、Aがパッケージの一部である場合 (たとえばcom.example)、それは である必要がありますClass.forName("com.example.A")。
Sotirios Delimanolis のコードと私のコードを組み合わせて、完全に機能する例を作成する方法は次のとおりです。
class Example {
    static class A {
        String[] des = { "Hi from class A" };
    }
    static class B {
        String[] des = { "Hi from Class B" };
    }
    public static void main(String[] args) {
        String[] classNames = { "Example$A", "Example$B" }; // inner class names
        for (String name : classNames) {
            try {
                System.out.println(getDes0(name));
            } catch (Exception e) {
                System.err.println("Could not get des[0] for class " + name);
                e.printStackTrace();
            }
        }
    }
    private static String getDes0(String className)
        throws Exception // better to be explicit, but distracts from the answer
    {
        Class<?> cls = Class.forName(className);
        Field field = cls.getDeclaredField("des");
        Object obj = cls.newInstance();
        String[] des = (String[]) field.get(obj);
        return des[0];
    }
}