2011-01-09 155 views
2

方法描述符中的Object [] []的Whats字段描述符?說存在一個類foo.bar.Class和方法需要一類[] [],根據Object [] []的Java字段描述符

http://java.sun.com/docs/books/jvms/second_edition/html/ClassFile.doc.html#14152

或JNI規範我的理解是,它應該是

[[Lfoo/bar/Class; 

但是這被評估爲「[foo.bar.Class」的數組,當然會觸發java.lang.NoClassDefFoundError

如若 「內」 陣列可能被認爲是一個java.lang.Object中,導致

[Ljava/lang/Object; 

回答

2

我想你做錯了什麼。這個工作對我來說:

package ro.redeul.test; 

public class Test { 

    public static void main(String[] args) throws NoSuchMethodException { 
     System.out.println("x: " + Test.class.getMethod("method").getReturnType().toString()); 
    } 

    public Test[][] method() { 
     return null; 
    } 
} 

它打印x: class [[Lro.redeul.test.Test;

你能否提供更多的背景?

+0

我確實忽略了一個錯字(在一個描述符字符串末尾的一個地方缺少';':)問題已解決:) – barbaz

+0

啊..好吧然後:) –

+0

我同時也想到了一個簡單的方法驗證描述符字符串是「javap -c」 – barbaz