2012-06-15 42 views
0

我不知道该如何读取文件。我想阅读FK.java文件,但给我一个没有发现异常的类。 FK是注释java文件。 (我曾尝试 “SRC /注释/ FK.java”,但没有奏效。如何读取注释文件?

private static String clazz = "src/annotations/FK"; 

public static List<Object> GetAnnotations() throws ClassNotFoundException{ 

    Class<?> c; 
    c = Class.forName(clazz); 

    List<Object> result = new ArrayList(); 


    Field[] fields = c.getDeclaredFields(); 
    for (int j = 0; j < fields.length; j++) 
    { 
     Annotation[] annot = fields[j].getAnnotations(); 
     for (int k = 0; k < annot.length; k++) 
     { 
      result.add(annot[k].annotationType()); 
     } 
    } 
    return result; 
} 

public static void main(String[] args) throws ClassNotFoundException { 
    System.out.println(GetAnnotations()); 
} 

回答

1

类的名称应包含点(.)没有斜杠('/“)

private static String clazz = "annotations.FK"; 

然后

Class.forName(clazz); 

将尝试从所提供的类路径中加载annotations/FK.class。如果你只拥有java文件,哟你需要先编译它。

编辑:基于评论固定路径

+1

的src /可能是源文件夹,所以类名可能annotations.FK – Polygnome

+0

感谢,它可以读取文件:但有人已经得到了一些教程,我怎样才能读出注释?我的代码不起作用... – blaces

+0

@Polygnome - thx,更正 – Attila

0

你的问题是,你想获得Class对象与错误的语法注释的类。

0123'-method采用完全限定的Java类名作为参数。这是包含在你的Java文件中声明的类的包的名字,紧跟你的类名。在你的情况下,可能是"annotations.FK"

还有一点需要注意的是,仅仅为该类提供Java源代码文件将无法实现。你将需要在你的类路径中有编译的类。

下面是一个简单的例子:

// mytoplevelpackage/mypackage/MyClass.java 

package mytoplevelpackage.mypackage; 

public class MyClass {} 


// mytoplevelpackage/OtherClass.java 

package mytoplevelpackage; 

public class OtherClass { 
    public static void main(String[] args) throws ClassNotFoundException { 
    Class c = Class.forName("mytoplevelpackage.mypackage.MyClass"); 
    } 
} 
+0

感谢:)的帮助。 – blaces

相关问题