首页 > 解决方案 > 为什么IDEA在我使用java反射时会出错,而eclipse却没有

问题描述

我试过用JAVA反射完成一个servlet Demo。但我得到了错误的提示。这个提示只出现在IDEA中,eclipse正常,没有任何提示。

提示: 在此处输入图片描述

像这样的代码:

package...
import...

    public class ServletDemo02 extends HttpServlet {
        private static final long serialVersionUID = 1L;
        public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request, response);
        }

        public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

            String md=request.getParameter("method");

            String path=null;

            Class clazz = this.getClass();
            try {

                Method method=clazz.getMethod(md, HttpServletRequest.class,HttpServletResponse.class);
                if(null!=method){
                    //
                    path=(String)method.invoke(this, request,response);
                }
                if(null!=path){

                    request.getRequestDispatcher(path).forward(request, response);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }



        }

        public String addStu(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            System.out.println("add");
            return "/test.html";

        }
        public String delStu...
        public String delStu...

标签: javaservletsreflection

解决方案


getMethodin的声明Class

Method getMethod(String name, Class<?>... parameterTypes)

parameterTypes是一个可变参数,至少需要 Java 5。仔细检查 Java 5 是否已在您的 IDE 中激活。


推荐阅读