getField和getDeclaredField的區別


這兩個方法都是用於獲取字段
getField 只能獲取public的,包括從父類繼承來的字段。
getDeclaredField 能夠獲取本類全部的字段,包括private的,可是不能獲取繼承來的字段。 (注: 這裏只能獲取到private的字段,但並不能訪問該private字段的值,除非加上setAccessible(true))
java

 

 

//從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);
相關文章
相關標籤/搜索