getField和getDeclaredField的区别


这两个方法都是用于获取字段
getField 只能获取public的,包括从父类继承来的字段。
getDeclaredField 可以获取本类所有的字段,包括private的,但是不能获取继承来的字段。 (注: 这里只能获取到private的字段,但并不能访问该private字段的值,除非加上setAccessible(true))

 

 

//从spring.txt中获取类名称和方法名称
         File springConfigFile =  new  File( "e:\\project\\j2se\\src\\spring.txt" );
         Properties springConfig=  new  Properties();
         springConfig.load( new  FileInputStream(springConfigFile));
         String className = (String) springConfig.get( "class" );
         String methodName = (String) springConfig.get( "method" );
         
         //根据类名称获取类对象
         Class clazz = Class.forName(className);
         //根据方法名称,获取方法对象
         Method m = clazz.getMethod(methodName);
         //获取构造器
         Constructor c = clazz.getConstructor();
         //根据构造器,实例化出对象
         Object service = c.newInstance();
         //调用对象的指定方法
         m.invoke(service);

转载于:https://www.cnblogs.com/chinaifae/p/10195847.html

你可能感兴趣的:(getField和getDeclaredField的区别)