2011-01-09 115 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