我知道输入完整包路径如"java.lang.String"可以用反射Class.forName()得到,但是比如我传入只是一个没有包路径的字符串如"MyClass1",通过反射,得到一个类为:MyClass1,如何实现?

解决方案 »

  1.   

    其实如果MyClass1本身没有包名的,那直接传也行,不然只能加package,package是作为完整类名的一部分的,光拿一部分是区分不了到底是哪个类的。
    一般建议新建的类都加package吧
      

  2.   

    只能搜索整个classpath,看有没有相同名字的类
      

  3.   

    通过classloader可以找出目前被加载的class
      

  4.   

    如果你的类本身没有包名,可以直接写类的名字, 如:
    try{
        Class demo= Class.forName("没有路径的类名");
    catch (Exception e) {
    }
      

  5.   

    如果有几个同名类估计java就算帮你找到可也不知道你要用的是哪个,应该说连你自己也不知道吧,当然如果做插件就是有意义的了