例如:现在给出一个.java文件, 要编一个程序 来读出(.java)里面的"类"名称(就是Class后的那个)还有这个类所继承的那个类的名称(就是extends后的那个类)
并能将读出来的"这两个类的名称及路径"导出到一个XML文件中(就是做一个类的继承关系表)
请高手帮忙,最好能给出一个程序,因为我是菜鸟不会写(而这又是我的任务,要加紧完成)
(也不知道该属哪个论坛.....)

解决方案 »

  1.   

    你的题目跟下面说的怎么不一样啊!
    我这有个跟你题目差不多的代码。import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.FileReader;public class Test
    {  
       public static void main(String[] args)
       {  
          if (args.length < 2)
          {  
             System.out.println("Usage: FindWord targetfile1, targetfile2...");
             return;
          }      try
          { 
             for (int i = 1; i < args.length; i++)
             { 
                FileReader in = new FileReader(args[i]);
                BufferedReader bufferedReader = new BufferedReader(in);
                String line =bufferedReader.readLine();
                while(bufferedReader.ready()){
                if (line.indexOf(args[0])!=-1)
                   System.out.println(args[i] + ": " + line);
                line =bufferedReader.readLine();
                }
                in.close();
             }
             System.out.println();
          }
          catch (IOException e)
          { 
             e.printStackTrace();
          }
       }
    }
      

  2.   

    如果仅仅是操作类的话,我觉得可以用反射机制,对于给定的类名,xxx, 试着去实例化一个,比如Class.forName(xxx),然后找superclass,具体的可以看看api。
      

  3.   

    楼主看下正则表达式,对这个很管用,符对行的Java内正则表达式.
    代码换行的问题楼主可以自已想一下.
    找extends:
    String extendsString = "\\s+extends\\s+[\\S]+[^{\\s]";
    找class:
    String classString = "class\\s+[\\S]+[^\\s{]";分数拿来.
      

  4.   


    2楼说的对。  
    Class class = Class.forName("YourClass");
    class.getName();
    class.getSuperclass().getName;
      

  5.   

    呵呵,没有class文件,无法反射啦.
      

  6.   

     不熟悉就慢慢读吧,网上的例子就可以.
      还不行就读出来后 用 SPLIT  \n\t  
    -_-!
      

  7.   

     FileReader in = new FileReader(args[i]);
                BufferedReader bufferedReader = new BufferedReader(in);
                String line =bufferedReader.readLine();
                while(bufferedReader.ready()){
                    if (line.indexOf(args[0])!=-1)
                       System.out.println(args[i] + ": " + line);
                    line =bufferedReader.readLine();