在java反射中找不到类

时间:2017-04-18 17:00:49

标签: java reflection

我正在学习java反思。我使用以下代码。但是当我跑步时,它会给出错误

  

未报告的异常ClassNotFoundException;必须被抓住或   宣布被抛出   class className = Class.forName(“First”);

也许我在某个地方出错了。请帮帮我。这是代码:

import java.lang.reflect.Method;
public class First{   
        public void print(){}
        public void ready(){}
    }

public class test{
    public static void main(String args[])
    {
        Class className=Class.forName("com.Test.First");
        Method[] methods=className.getMethods();
        System.out.println("First method is" + methods[0]);
    }
}

2 个答案:

答案 0 :(得分:1)

所有它的说法是Class.forName抛出这个(非运行时)异常,所以你必须以某种方式处理它。这有两种方法可以做到这一点

public class test{
    public static void main(String args[])
    {
        try {
          Class className=Class.forName("com.Test.First");
          Method[] methods=className.getMethods();
          System.out.println("First method is" + methods[0]);
       }
       catch (ClassNotFoundException ex) {
         ex.printStackTrace();
       }
    }
}

{{1}}

答案 1 :(得分:0)

这一行是问题

Class className=Class.forName("com.Test.First"); 
Class.forName("com.Test.First")中的

,你可以用任何乱码替换com.Test.First,编译器应该不在乎为你验证它。所有编译器都知道,可能没有类com.Test.First,因此您负责处理ClassNotFoundException