毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> java技术 >> 正文

eclipse的智能提示原理是什么

更新时间:2013-6-22:  来源:毕业论文

eclipse的智能提示原理是什么

eclipse的智能提示原理是什么?我们写个String str = "aaaa";然后写str.它就会有提示。eclipse是怎么找到Sring的成员函数呢?有人说是用反射实现的,能具体解释下思路吗?或者给个资料。
   我在网上找到这个外国人发的类似帖子How do they perform auto complete of code in eclipse or other ides? What is basic principle behind it?,它有个回复讲的是智能提示用了prefix tree,但感觉这只能实现如下功能:在一个文件里已经有一个长单词abcedfghijklmnopq,下次你再写个abcedfghi,按某个快捷键就能自动补全,说白了prefix tree只能实现自动补全的功能(就像vim的Ctl+N),但实现不了java定义的对象自动找自己的成员函数。
    哪位大神能解释下"java定义的对象如何自动找自己的成员函数"?给个思路就行,细节我自己研究。万分感谢。

知道反射的具体原理吗

Thinking in java 上有个例子。先用Class<?> c = Class.forName(类名);产生一个类的Class,再用Method[] methods = c.getMethods();就能得到成员函数了。的确用的反射。谢谢NNTT2010。
源代码如下:
Java code?package org.xalg.test;   import java.lang.reflect.*; import java.util.regex.*;   public class ShowMethods {     private static String usage = "usage:\n"            + "ShowMethods qualified.class.name\n"            + "To show all methods in class or:\n"            + "ShowMethods qualified.class.name word\n"            + "To search for methods involving 'word'";     private static Pattern p = Pattern.compile("\\w+\\.");       public static void main(String[] args) {         if (args.length < 1) {             System.out.println(usage);             System.exit(0);         }         int lines = 0;         try {             Class<?> c = Class.forName(args[0]);             Method[] methods = c.getMethods();             Constructor[] ctors = c.getConstructors();             if (args.length == 1) {                 for (Method method : methods)                     System.out.println(p.matcher(method.toString()).replaceAll(                             ""));                 for (Constructor ctor : ctors)                     System.out.println(p.matcher(ctor.toString())                             .replaceAll(""));                 lines = methods.length + ctors.length;             } else {                 for (Method method : methods)                     if (method.toString().indexOf(args[1]) != -1) {                         System.out.println(p.matcher(method.toString())                                 .replaceAll(""));                         lines++;                     }                 for (Constructor ctor : ctors)                     if (ctor.toString().indexOf(args[1]) != -1) {                         System.out.println(p.matcher(ctor.toString())                                 .replaceAll(""));                         lines++;                     }             }         } catch (ClassNotFoundException e) {             System.out.println("No such class: " + e);         }     } }

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。