锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久亚洲精品AB无码播放 ,久久亚洲精品国产亚洲老地址,久久久久亚洲AV成人网人人软件http://www.tkk7.com/zhhp1314520/category/16140.htmlzh-cnTue, 13 Nov 2007 21:36:53 GMTTue, 13 Nov 2007 21:36:53 GMT60Java鍙嶅皠緇忓吀瀹炰緥 Java Reflection Cookbook (鍒濈駭)http://www.tkk7.com/zhhp1314520/articles/java_reflection_1.html鎹曢鎹曢Mon, 12 Nov 2007 06:24:00 GMThttp://www.tkk7.com/zhhp1314520/articles/java_reflection_1.htmlhttp://www.tkk7.com/zhhp1314520/comments/159963.htmlhttp://www.tkk7.com/zhhp1314520/articles/java_reflection_1.html#Feedback0http://www.tkk7.com/zhhp1314520/comments/commentRss/159963.htmlhttp://www.tkk7.com/zhhp1314520/services/trackbacks/159963.html
1. 寰楀埌鏌愪釜瀵硅薄鐨勫睘鎬?br />
1 public Object getProperty(Object owner, String fieldName) throws Exception {
2     Class ownerClass = owner.getClass();
3 
4     Field field = ownerClass.getField(fieldName);
5 
6     Object property = field.get(owner);
7 
8     return property;
9 }

Class ownerClass = owner.getClass()錛氬緱鍒拌瀵硅薄鐨凜lass銆?br />
Field field = ownerClass.getField(fieldName)錛氶氳繃Class寰楀埌綾誨0鏄庣殑灞炴с?br />
Object property = field.get(owner)錛氶氳繃瀵硅薄寰楀埌璇ュ睘鎬х殑瀹炰緥錛屽鏋滆繖涓睘鎬ф槸闈炲叕鏈夌殑錛岃繖閲屼細鎶llegalAccessException銆?br />


2. 寰楀埌鏌愪釜綾葷殑闈欐佸睘鎬?br />
 1 public Object getStaticProperty(String className, String fieldName)
 2             throws Exception {
 3     Class ownerClass = Class.forName(className);
 4 
 5     Field field = ownerClass.getField(fieldName);
 6 
 7     Object property = field.get(ownerClass);
 8 
 9     return property;
10 }


Class ownerClass = Class.forName(className) 錛氶鍏堝緱鍒拌繖涓被鐨凜lass銆?br />
Field field = ownerClass.getField(fieldName)錛氬拰涓婇潰涓鏍鳳紝閫氳繃Class寰楀埌綾誨0鏄庣殑灞炴с?br />
Object property = field.get(ownerClass) 錛氳繖閲屽拰涓婇潰鏈変簺涓嶅悓錛屽洜涓鴻灞炴ф槸闈欐佺殑錛屾墍浠ョ洿鎺ヤ粠綾葷殑Class閲屽彇銆?br />

3. 鎵ц鏌愬璞$殑鏂規(guī)硶

 1 public Object invokeMethod(Object owner, String methodName, Object[] args) throws Exception {
 2 
 3     Class ownerClass = owner.getClass();
 4 
 5     Class[] argsClass = new Class[args.length];
 6 
 7     for (int i = 0, j = args.length; i < j; i++) {
 8         argsClass[i] = args[i].getClass();
 9     }
10 
11     Method method = ownerClass.getMethod(methodName, argsClass);
12 
13     return method.invoke(owner, args);
14 }

Class owner_class = owner.getClass() 錛氶鍏堣繕鏄繀欏誨緱鍒拌繖涓璞$殑Class銆?br />
5锝?琛岋細閰嶇疆鍙傛暟鐨凜lass鏁扮粍錛屼綔涓哄鎵綧ethod鐨勬潯浠躲?br />
Method method = ownerClass.getMethod(methodName, argsClass)錛氶氳繃Method鍚嶅拰鍙傛暟鐨凜lass鏁扮粍寰楀埌瑕佹墽琛岀殑Method銆?br />
method.invoke(owner, args)錛氭墽琛岃Method錛宨nvoke鏂規(guī)硶鐨勫弬鏁版槸鎵ц榪欎釜鏂規(guī)硶鐨勫璞★紝鍜屽弬鏁版暟緇勩傝繑鍥炲兼槸Object錛屼篃鏃㈡槸璇ユ柟娉曠殑榪斿洖鍊箋?br />

4. 鎵ц鏌愪釜綾葷殑闈欐佹柟娉?br />
 1 public Object invokeStaticMethod(String className, String methodName,
 2             Object[] args) throws Exception {
 3     Class ownerClass = Class.forName(className);
 4 
 5     Class[] argsClass = new Class[args.length];
 6 
 7     for (int i = 0, j = args.length; i < j; i++) {
 8         argsClass[i] = args[i].getClass();
 9     }
10 
11     Method method = ownerClass.getMethod(methodName, argsClass);
12 
13     return method.invoke(null, args);
14 }


鍩烘湰鐨勫師鐞嗗拰瀹炰緥3鐩稿悓錛屼笉鍚岀偣鏄渶鍚庝竴琛岋紝invoke鐨勪竴涓弬鏁版槸null錛屽洜涓鴻繖鏄潤鎬佹柟娉曪紝涓嶉渶瑕佸熷姪瀹炰緥榪愯銆?br />


5. 鏂板緩瀹炰緥
 1 
 2 public Object newInstance(String className, Object[] args) throws Exception {
 3     Class newoneClass = Class.forName(className);
 4 
 5     Class[] argsClass = new Class[args.length];
 6 
 7     for (int i = 0, j = args.length; i < j; i++) {
 8         argsClass[i] = args[i].getClass();
 9     }
10 
11     Constructor cons = newoneClass.getConstructor(argsClass);
12 
13     return cons.newInstance(args);
14 
15 }


榪欓噷璇寸殑鏂規(guī)硶鏄墽琛屽甫鍙傛暟鐨勬瀯閫犲嚱鏁版潵鏂板緩瀹炰緥鐨勬柟娉曘傚鏋滀笉闇瑕佸弬鏁幫紝鍙互鐩存帴浣跨敤newoneClass.newInstance()鏉ュ疄鐜般?br />
Class newoneClass = Class.forName(className)錛氱涓姝ワ紝寰楀埌瑕佹瀯閫犵殑瀹炰緥鐨凜lass銆?br />
絎?锝炵9琛岋細寰楀埌鍙傛暟鐨凜lass鏁扮粍銆?br />
Constructor cons = newoneClass.getConstructor(argsClass)錛氬緱鍒版瀯閫犲瓙銆?br />
cons.newInstance(args)錛氭柊寤哄疄渚嬨?br />

6. 鍒ゆ柇鏄惁涓烘煇涓被鐨勫疄渚?br />
1 public boolean isInstance(Object obj, Class cls) {
2     return cls.isInstance(obj);
3 }



7. 寰楀埌鏁扮粍涓殑鏌愪釜鍏冪礌
1 public Object getByArray(Object array, int index) {
2     return Array.get(array,index);
3 }



闄勫畬鏁存簮鐮侊細

import java.lang.reflect.Array;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;


/**
 * Java Reflection Cookbook
 *
 * 
@author Michael Lee
 * 
@since 2006-8-23
 * 
@version 0.1a
 
*/

public class Reflection {
    
/**
     * 寰楀埌鏌愪釜瀵硅薄鐨勫叕鍏卞睘鎬?br />      *
     * 
@param owner, fieldName
     * 
@return 璇ュ睘鎬у璞?br />      * @throws Exception
     *
     
*/
    
public Object getProperty(Object owner, String fieldName) throws Exception {
        Class ownerClass 
= owner.getClass();

        Field field 
= ownerClass.getField(fieldName);

        Object property 
= field.get(owner);

        
return property;
    }

    
/**
     * 寰楀埌鏌愮被鐨勯潤鎬佸叕鍏卞睘鎬?br />      *
     * 
@param className   綾誨悕
     * 
@param fieldName   灞炴у悕
     * 
@return 璇ュ睘鎬у璞?br />      * @throws Exception
     
*/
    
public Object getStaticProperty(String className, String fieldName)
            
throws Exception {
        Class ownerClass 
= Class.forName(className);

        Field field 
= ownerClass.getField(fieldName);

        Object property 
= field.get(ownerClass);

        
return property;
    }


    
/**
     * 鎵ц鏌愬璞℃柟娉?br />      *
     * 
@param owner
     *            瀵硅薄
     * 
@param methodName
     *            鏂規(guī)硶鍚?br />      * 
@param args
     *            鍙傛暟
     * 
@return 鏂規(guī)硶榪斿洖鍊?br />      * @throws Exception
     
*/
    
public Object invokeMethod(Object owner, String methodName, Object[] args)
            
throws Exception {

        Class ownerClass 
= owner.getClass();

        Class[] argsClass 
= new Class[args.length];

        
for (int i = 0, j = args.length; i < j; i++) {
            argsClass[i] 
= args[i].getClass();
        }

        Method method 
= ownerClass.getMethod(methodName, argsClass);

        
return method.invoke(owner, args);
    }


      
/**
     * 鎵ц鏌愮被鐨勯潤鎬佹柟娉?br />      *
     * 
@param className
     *            綾誨悕
     * 
@param methodName
     *            鏂規(guī)硶鍚?br />      * 
@param args
     *            鍙傛暟鏁扮粍
     * 
@return 鎵ц鏂規(guī)硶榪斿洖鐨勭粨鏋?br />      * @throws Exception
     
*/
    
public Object invokeStaticMethod(String className, String methodName,
            Object[] args) 
throws Exception {
        Class ownerClass 
= Class.forName(className);

        Class[] argsClass 
= new Class[args.length];

        
for (int i = 0, j = args.length; i < j; i++) {
            argsClass[i] 
= args[i].getClass();
        }

        Method method 
= ownerClass.getMethod(methodName, argsClass);

        
return method.invoke(null, args);
    }



    
/**
     * 鏂板緩瀹炰緥
     *
     * 
@param className
     *            綾誨悕
     * 
@param args
     *            鏋勯犲嚱鏁扮殑鍙傛暟
     * 
@return 鏂板緩鐨勫疄渚?br />      * @throws Exception
     
*/
    
public Object newInstance(String className, Object[] args) throws Exception {
        Class newoneClass 
= Class.forName(className);

        Class[] argsClass 
= new Class[args.length];

        
for (int i = 0, j = args.length; i < j; i++) {
            argsClass[i] 
= args[i].getClass();
        }

        Constructor cons 
= newoneClass.getConstructor(argsClass);

        
return cons.newInstance(args);

    }


    
    
/**
     * 鏄笉鏄煇涓被鐨勫疄渚?br />      * 
@param obj 瀹炰緥
     * 
@param cls 綾?br />      * @return 濡傛灉 obj 鏄綾葷殑瀹炰緥錛屽垯榪斿洖 true
     
*/
    
public boolean isInstance(Object obj, Class cls) {
        
return cls.isInstance(obj);
    }
    
    
/**
     * 寰楀埌鏁扮粍涓殑鏌愪釜鍏冪礌
     * 
@param array 鏁扮粍
     * 
@param index 绱㈠紩
     * 
@return 榪斿洖鎸囧畾鏁扮粍瀵硅薄涓儲寮曠粍浠剁殑鍊?br />      */
    
public Object getByArray(Object array, int index) {
        
return Array.get(array,index);
    }
}


鎹曢 2007-11-12 14:24 鍙戣〃璇勮
]]>
Java Reflection (JAVA鍙嶅皠) ----杞澆http://www.tkk7.com/zhhp1314520/articles/java_reflection_2.html鎹曢鎹曢Mon, 12 Nov 2007 06:24:00 GMThttp://www.tkk7.com/zhhp1314520/articles/java_reflection_2.htmlhttp://www.tkk7.com/zhhp1314520/comments/159964.htmlhttp://www.tkk7.com/zhhp1314520/articles/java_reflection_2.html#Feedback0http://www.tkk7.com/zhhp1314520/comments/commentRss/159964.htmlhttp://www.tkk7.com/zhhp1314520/services/trackbacks/159964.html JavaBean 鏄?reflection 鐨勫疄闄呭簲鐢ㄤ箣涓錛屽畠鑳借涓浜涘伐鍏峰彲瑙嗗寲鐨勬搷浣滆蔣浠剁粍浠躲傝繖浜涘伐鍏烽氳繃 reflection 鍔ㄦ佺殑杞藉叆騫跺彇寰?Java 緇勪歡(綾? 鐨勫睘鎬с?br />
1. 涓涓畝鍗曠殑渚嬪瓙
鑰冭檻涓嬮潰榪欎釜綆鍗曠殑渚嬪瓙錛岃鎴戜滑鐪嬬湅 reflection 鏄浣曞伐浣滅殑銆?br /> import java.lang.reflect.*;
public class DumpMethods {
    public static void main(String args[]) {
        try {
            Class c = Class.forName(args[0]);
            Method m[] = c.getDeclaredMethods();
            for (int i = 0; i < m.length; i++)
                System.out.println(m[i].toString());
        } catch (Throwable e) {
            System.err.println(e);
        }
    }
}


鎸夊涓嬭鍙ユ墽琛岋細
java DumpMethods java.util.Stack

瀹冪殑緇撴灉杈撳嚭涓猴細
public java.lang.Object java.util.Stack.push(java.lang.Object)
public synchronized java.lang.Object java.util.Stack.pop()
public synchronized java.lang.Object java.util.Stack.peek()
public boolean java.util.Stack.empty()
public synchronized int java.util.Stack.search(java.lang.Object)

榪欐牱灝卞垪鍑轟簡java.util.Stack 綾葷殑鍚勬柟娉曞悕浠ュ強瀹冧滑鐨勯檺鍒剁鍜岃繑鍥炵被鍨嬨?/p>

榪欎釜紼嬪簭浣跨敤 Class.forName 杞藉叆鎸囧畾鐨勭被錛岀劧鍚庤皟鐢?getDeclaredMethods 鏉ヨ幏鍙栬繖涓被涓畾涔変簡鐨勬柟娉曞垪琛ㄣ俲ava.lang.reflect.Methods 鏄敤鏉ユ弿榪版煇涓被涓崟涓柟娉曠殑涓涓被銆?/p>

2.寮濮嬩嬌鐢?Reflection
鐢? 浜?reflection 鐨勭被錛屽 Method錛屽彲浠ュ湪 java.lang.relfect 鍖呬腑鎵懼埌銆備嬌鐢ㄨ繖浜涚被鐨勬椂鍊欏繀欏昏閬靛驚涓変釜姝ラ錛氱涓姝ユ槸鑾峰緱浣犳兂鎿嶄綔鐨勭被鐨?java.lang.Class 瀵硅薄銆傚湪榪愯涓殑 Java 紼嬪簭涓紝鐢?java.lang.Class 綾繪潵鎻忚堪綾誨拰鎺ュ彛絳夈?/p>

涓嬮潰灝辨槸鑾峰緱涓涓?Class 瀵硅薄鐨勬柟娉曚箣涓錛?br /> Class c = Class.forName("java.lang.String");
榪欐潯璇彞寰楀埌涓涓?String 綾葷殑綾誨璞°傝繕鏈夊彟涓縐嶆柟娉曪紝濡備笅闈㈢殑璇彞錛?br /> Class c = int.class;   鎴栬?nbsp;  Class c = Integer.TYPE;

瀹冧滑鍙幏寰楀熀鏈被鍨嬬殑綾諱俊鎭傚叾涓悗涓縐嶆柟娉曚腑璁塊棶鐨勬槸鍩烘湰綾誨瀷鐨勫皝瑁呯被 (濡?Integer) 涓鍏堝畾涔夊ソ鐨?TYPE 瀛楁銆?br />
絎簩姝ユ槸璋冪敤璇稿 getDeclaredMethods 鐨勬柟娉曪紝浠ュ彇寰楄綾諱腑瀹氫箟鐨勬墍鏈夋柟娉曠殑鍒楄〃銆?br />
涓鏃﹀彇寰楄繖涓俊鎭紝灝卞彲浠ヨ繘琛岀涓夋浜嗏斺斾嬌鐢?reflection API 鏉ユ搷浣滆繖浜涗俊鎭紝濡備笅闈㈣繖孌典唬鐮侊細
Class c = Class.forName("java.lang.String");
Method m[] = c.getDeclaredMethods();
System.out.println(m[0].toString());
瀹冨皢浠ユ枃鏈柟寮忔墦鍗板嚭 String 涓畾涔夌殑絎竴涓柟娉曠殑鍘熷瀷銆?br /> 鍦ㄤ笅闈㈢殑渚嬪瓙涓紝榪欎笁涓楠ゅ皢涓轟嬌鐢?reflection 澶勭悊鐗規(guī)畩搴旂敤紼嬪簭鎻愪緵渚嬭瘉銆?/p>


妯℃嫙 instanceof 鎿嶄綔絎?br /> 寰楀埌綾諱俊鎭箣鍚庯紝閫氬父涓嬩竴涓楠ゅ氨鏄В鍐沖叧浜?Class 瀵硅薄鐨勪竴浜涘熀鏈殑闂銆備緥濡傦紝Class.isInstance 鏂規(guī)硶鍙互鐢ㄤ簬妯℃嫙 instanceof 鎿嶄綔絎︼細
class A {
}

public class instance1 {
    public static void main(String args[]) {
        try {
            Class cls = Class.forName("A");
            boolean b1 = cls.isInstance(new Integer(37));
            System.out.println(b1);
            boolean b2 = cls.isInstance(new A());
            System.out.println(b2);
        } catch (Throwable e) {
            System.err.println(e);
        }
    }
}

鍦ㄨ繖涓緥瀛愪腑鍒涘緩浜嗕竴涓?A 綾葷殑 Class 瀵硅薄錛岀劧鍚庢鏌ヤ竴浜涘璞℃槸鍚︽槸 A 鐨勫疄渚嬨侷nteger(37) 涓嶆槸錛屼絾 new A() 鏄?/p>


3.鎵懼嚭綾葷殑鏂規(guī)硶
鎵懼嚭涓涓被涓畾涔変簡浜涗粈涔堟柟娉曪紝榪欐槸涓涓潪甯告湁浠峰間篃闈炲父鍩虹鐨?reflection 鐢ㄦ硶銆備笅闈㈢殑浠g爜灝卞疄鐜頒簡榪欎竴鐢ㄦ硶錛?br /> import java.lang.reflect.*;
public class method1 {
    private int f1(Object p, int x) throws NullPointerException {
        if (p == null)
            throw new NullPointerException();
        return x;
    }
    public static void main(String args[]) {
        try {
            Class cls = Class.forName("method1");
            Method methlist[] = cls.getDeclaredMethods();
            for (int i = 0; i < methlist.length; i++) {
                Method m = methlist[i];
                System.out.println("name = " + m.getName());
                System.out.println("decl class = " + m.getDeclaringClass());
                Class pvec[] = m.getParameterTypes();
                for (int j = 0; j < pvec.length; j++)
                    System.out.println("param #" + j + " " + pvec[j]);
                Class evec[] = m.getExceptionTypes();
                for (int j = 0; j < evec.length; j++)
                    System.out.println("exc #" + j + " " + evec[j]);
                System.out.println("return type = " + m.getReturnType());
                System.out.println("-----");
            }
        } catch (Throwable e) {
            System.err.println(e);
        }
    }
}


榪? 涓▼搴忛鍏堝彇寰?method1 綾葷殑鎻忚堪錛岀劧鍚庤皟鐢?getDeclaredMethods 鏉ヨ幏鍙栦竴緋誨垪鐨?Method 瀵硅薄錛屽畠浠垎鍒弿榪頒簡瀹氫箟鍦ㄧ被涓殑姣忎竴涓柟娉曪紝鍖呮嫭 public 鏂規(guī)硶銆乸rotected 鏂規(guī)硶銆乸ackage 鏂規(guī)硶鍜?private 鏂規(guī)硶絳夈傚鏋滀綘鍦ㄧ▼搴忎腑浣跨敤 getMethods 鏉ヤ唬鏇?getDeclaredMethods錛屼綘榪樿兘鑾峰緱緇ф壙鏉ョ殑鍚勪釜鏂規(guī)硶鐨勪俊鎭?br />
鍙栧緱浜?Method 瀵硅薄鍒楄〃涔嬪悗錛岃鏄劇ず榪欎簺鏂規(guī)硶鐨勫弬鏁扮被鍨嬨佸紓甯哥被鍨嬪拰榪斿洖鍊肩被鍨嬬瓑灝變笉闅句簡銆傝繖浜涚被鍨嬫槸鍩烘湰綾誨瀷榪樻槸綾葷被鍨嬶紝閮藉彲浠ョ敱鎻忚堪綾葷殑瀵硅薄鎸夐『搴忕粰鍑恒?br />
杈撳嚭鐨勭粨鏋滃涓嬶細
name = f1
decl class = class method1
param #0 class java.lang.Object
param #1 int
exc #0 class java.lang.NullPointerException
return type = int
-----
name = main
decl class = class method1
param #0 class [Ljava.lang.String;
return type = void
-----


4.鑾峰彇鏋勯犲櫒淇℃伅
鑾峰彇綾繪瀯閫犲櫒鐨勭敤娉曚笌涓婅堪鑾峰彇鏂規(guī)硶鐨勭敤娉曠被浼鹼紝濡傦細
import java.lang.reflect.*;
public class constructor1 {
    public constructor1() {
    }

    protected constructor1(int i, double d) {
    }

    public static void main(String args[]) {
        try {
            Class cls = Class.forName("constructor1");
            Constructor ctorlist[] = cls.getDeclaredConstructors();
            for (int i = 0; i < ctorlist.length; i++) {
                Constructor ct = ctorlist[i];
                System.out.println("name = " + ct.getName());
                System.out.println("decl class = " + ct.getDeclaringClass());
                Class pvec[] = ct.getParameterTypes();
                for (int j = 0; j < pvec.length; j++)
                    System.out.println("param #" + j + " " + pvec[j]);
                Class evec[] = ct.getExceptionTypes();
                for (int j = 0; j < evec.length; j++)
                    System.out.println("exc #" + j + " " + evec[j]);
                System.out.println("-----");
            }
        } catch (Throwable e) {
            System.err.println(e);
        }
    }
}


榪欎釜渚嬪瓙涓病鑳借幏寰楄繑鍥炵被鍨嬬殑鐩稿叧淇℃伅錛岄偅鏄洜涓烘瀯閫犲櫒娌℃湁榪斿洖綾誨瀷銆?br /> 榪欎釜紼嬪簭榪愯鐨勭粨鏋滄槸錛?br /> name = constructor1
decl class = class constructor1
-----
name = constructor1
decl class = class constructor1
param #0 int
param #1 double
-----

5.鑾峰彇綾葷殑瀛楁(鍩?
鎵懼嚭涓涓被涓畾涔変簡鍝簺鏁版嵁瀛楁涔熸槸鍙兘鐨勶紝涓嬮潰鐨勪唬鐮佸氨鍦ㄥ共榪欎釜浜嬫儏錛?br /> import java.lang.reflect.*;

public class field1 {
    private double d;
    public static final int i = 37;
    String s = "testing";

     public static void main(String args[]) {
        try {
            Class cls = Class.forName("field1");
            Field fieldlist[] = cls.getDeclaredFields();
            for (int i = 0; i < fieldlist.length; i++) {
                Field fld = fieldlist[i];
                System.out.println("name = " + fld.getName());
                System.out.println("decl class = " + fld.getDeclaringClass());
                System.out.println("type = " + fld.getType());
                int mod = fld.getModifiers();
                System.out.println("modifiers = " + Modifier.toString(mod));
                System.out.println("-----");
            }
        } catch (Throwable e) {
            System.err.println(e);
        }
    }
}


榪? 涓緥瀛愬拰鍓嶉潰閭d釜渚嬪瓙闈炲父鐩鎬技銆備緥涓嬌鐢ㄤ簡涓涓柊涓滆タ Modifier錛屽畠涔熸槸涓涓?reflection 綾伙紝鐢ㄦ潵鎻忚堪瀛楁鎴愬憳鐨勪慨楗拌錛屽“private int”銆傝繖浜涗慨楗拌鑷韓鐢辨暣鏁版弿榪幫紝鑰屼笖浣跨敤 Modifier.toString 鏉ヨ繑鍥炰互“瀹樻柟”欏哄簭鎺掑垪鐨勫瓧絎︿覆鎻忚堪 (濡?#8220;static”鍦?#8220;final”涔嬪墠)銆傝繖涓▼搴忕殑杈撳嚭鏄細
name = d
decl class = class field1
type = double
modifiers = private
-----
name = i
decl class = class field1
type = int
modifiers = public static final
-----
name = s
decl class = class field1
type = class java.lang.String
modifiers =
-----

鍜岃幏鍙栨柟娉曠殑鎯呭喌涓涓嬶紝鑾峰彇瀛楁鐨勬椂鍊欎篃鍙互鍙彇寰楀湪褰撳墠綾諱腑鐢蟲槑浜嗙殑瀛楁淇℃伅 (getDeclaredFields)錛屾垨鑰呬篃鍙互鍙栧緱鐖剁被涓畾涔夌殑瀛楁 (getFields) 銆?/p>

6.鏍規(guī)嵁鏂規(guī)硶鐨勫悕縐版潵鎵ц鏂規(guī)硶
鏂囨湰鍒拌繖閲岋紝鎵涓劇殑渚嬪瓙鏃犱竴渚嬪閮戒笌濡備綍鑾峰彇綾葷殑淇℃伅鏈夊叧銆傛垜浠篃鍙互鐢?reflection 鏉ュ仛涓浜涘叾瀹冪殑浜嬫儏錛屾瘮濡傛墽琛屼竴涓寚瀹氫簡鍚嶇О鐨勬柟娉曘備笅闈㈢殑紺轟緥婕旂ず浜嗚繖涓鎿嶄綔錛?br /> import java.lang.reflect.*;
public class method2 {
    public int add(int a, int b) {
        return a + b;
    }
    public static void main(String args[]) {
        try {
            Class cls = Class.forName("method2");
            Class partypes[] = new Class[2];
            partypes[0] = Integer.TYPE;
            partypes[1] = Integer.TYPE;
            Method meth = cls.getMethod("add", partypes);
            method2 methobj = new method2();
            Object arglist[] = new Object[2];
            arglist[0] = new Integer(37);
            arglist[1] = new Integer(47);
            Object retobj = meth.invoke(methobj, arglist);
            Integer retval = (Integer) retobj;
            System.out.println(retval.intValue());
        } catch (Throwable e) {
            System.err.println(e);
        }
    }
}


鍋囧涓涓▼搴忓湪鎵ц鐨勬煇澶勭殑鏃跺欐墠鐭ラ亾闇瑕佹墽琛屾煇涓柟娉曪紝榪欎釜鏂規(guī)硶鐨勫悕縐版槸鍦ㄧ▼搴忕殑榪愯榪囩▼涓寚瀹氱殑 (渚嬪錛孞avaBean 寮鍙戠幆澧冧腑灝變細鍋氳繖鏍風殑浜?錛岄偅涔堜笂闈㈢殑紼嬪簭婕旂ず浜嗗浣曞仛鍒般?/p>


涓? 渚嬩腑錛実etMethod 鐢ㄤ簬鏌ユ壘涓涓叿鏈変袱涓暣鍨嬪弬鏁頒笖鍚嶄負 add 鐨勬柟娉曘傛壘鍒拌鏂規(guī)硶騫跺垱寤轟簡鐩稿簲鐨?Method 瀵硅薄涔嬪悗錛屽湪姝g‘鐨勫璞″疄渚嬩腑鎵ц瀹冦傛墽琛岃鏂規(guī)硶鐨勬椂鍊欙紝闇瑕佹彁渚涗竴涓弬鏁板垪琛紝榪欏湪涓婁緥涓槸鍒嗗埆鍖呰浜嗘暣鏁?37 鍜?47 鐨勪袱涓?Integer 瀵硅薄銆傛墽琛屾柟娉曠殑榪斿洖鐨勫悓鏍鋒槸涓涓?Integer 瀵硅薄錛屽畠?yōu)畞瑁呬簡杩斿洖鍊?84銆?/p>


7.鍒涘緩鏂扮殑瀵硅薄
瀵逛簬鏋勯犲櫒錛屽垯涓嶈兘鍍忔墽琛屾柟娉曢偅鏍瘋繘琛岋紝鍥犱負鎵ц涓涓瀯閫犲櫒灝辨剰鍛崇潃鍒涘緩浜嗕竴涓柊鐨勫璞?(鍑嗙‘鐨勮錛屽垱寤轟竴涓璞$殑榪囩▼鍖呮嫭鍒嗛厤鍐呭瓨鍜屾瀯閫犲璞?銆傛墍浠ワ紝涓庝笂渚嬫渶鐩鎬技鐨勪緥瀛愬涓嬶細
import java.lang.reflect.*;
public class constructor2 {
    public constructor2() {
    }

    public constructor2(int a, int b) {
        System.out.println("a = " + a + " b = " + b);
    }

    public static void main(String args[]) {
        try {
            Class cls = Class.forName("constructor2");
            Class partypes[] = new Class[2];
            partypes[0] = Integer.TYPE;
            partypes[1] = Integer.TYPE;
            Constructor ct = cls.getConstructor(partypes);
            Object arglist[] = new Object[2];
            arglist[0] = new Integer(37);
            arglist[1] = new Integer(47);
            Object retobj = ct.newInstance(arglist);
        } catch (Throwable e) {
            System.err.println(e);
        }
    }
}

鏍規(guī)嵁鎸囧畾鐨勫弬鏁扮被鍨嬫壘鍒扮浉搴旂殑鏋勯犲嚱鏁板茍鎵ц瀹冿紝浠ュ垱寤轟竴涓柊鐨勫璞″疄渚嬨備嬌鐢ㄨ繖縐嶆柟娉曞彲浠ュ湪紼嬪簭榪愯鏃跺姩鎬佸湴鍒涘緩瀵硅薄錛岃屼笉鏄湪緙栬瘧鐨勬椂鍊欏垱寤哄璞★紝榪欎竴鐐歸潪甯告湁浠峰箋?/p>


8.鏀瑰彉瀛楁(鍩?鐨勫?br /> reflection 鐨勮繕鏈変竴涓敤澶勫氨鏄敼鍙樺璞℃暟鎹瓧孌電殑鍊箋俽eflection 鍙互浠庢鍦ㄨ繍琛岀殑紼嬪簭涓牴鎹悕縐版壘鍒板璞$殑瀛楁騫舵敼鍙樺畠錛屼笅闈㈢殑渚嬪瓙鍙互璇存槑榪欎竴鐐癸細
import java.lang.reflect.*;
public class field2 {
    public double d;
    public static void main(String args[]) {
        try {
            Class cls = Class.forName("field2");
            Field fld = cls.getField("d");
            field2 f2obj = new field2();
            System.out.println("d = " + f2obj.d);
            fld.setDouble(f2obj, 12.34);
            System.out.println("d = " + f2obj.d);
        } catch (Throwable e) {
            System.err.println(e);
        }
    }
}


榪欎釜渚嬪瓙涓紝瀛楁 d 鐨勫艱鍙樹負浜?12.34銆?br /> 9.浣跨敤鏁扮粍
鏈枃浠嬬粛鐨?reflection 鐨勬渶鍚庝竴縐嶇敤娉曟槸鍒涘緩鐨勬搷浣滄暟緇勩傛暟緇勫湪 Java 璇█涓槸涓縐嶇壒孌婄殑綾葷被鍨嬶紝涓涓暟緇勭殑寮曠敤鍙互璧嬬粰 Object 寮曠敤銆傝瀵熶笅闈㈢殑渚嬪瓙鐪嬬湅鏁扮粍鏄庝箞宸ヤ綔鐨勶細
import java.lang.reflect.*;
public class array1 {
    public static void main(String args[]) {
        try {
            Class cls = Class.forName("java.lang.String");
            Object arr = Array.newInstance(cls, 10);
            Array.set(arr, 5, "this is a test");
            String s = (String) Array.get(arr, 5);
            System.out.println(s);
        } catch (Throwable e) {
            System.err.println(e);
        }
    }
}


渚嬩腑鍒涘緩浜?10 涓崟浣嶉暱搴︾殑 String 鏁扮粍錛屼負絎?5 涓綅緗殑瀛楃涓茶祴浜嗗鹼紝鏈鍚庡皢榪欎釜瀛楃涓蹭粠鏁扮粍涓彇寰楀茍鎵撳嵃浜嗗嚭鏉ャ?br />
涓嬮潰榪欐浠g爜鎻愪緵浜嗕竴涓洿澶嶆潅鐨勪緥瀛愶細
import java.lang.reflect.*;
public class array2 {
    public static void main(String args[]) {
        int dims[] = new int[]{5, 10, 15};
        Object arr = Array.newInstance(Integer.TYPE, dims);
        Object arrobj = Array.get(arr, 3);
        Class cls = arrobj.getClass().getComponentType();
        System.out.println(cls);
        arrobj = Array.get(arrobj, 5);
        Array.setInt(arrobj, 10, 37);
        int arrcast[][][] = (int[][][]) arr;
        System.out.println(arrcast[3][5][10]);
    }
}
渚? 涓垱寤轟簡涓涓?5 x 10 x 15 鐨勬暣鍨嬫暟緇勶紝騫朵負澶勪簬 [3][5][10] 鐨勫厓绱犺祴浜嗗間負 37銆傛敞鎰忥紝澶氱淮鏁扮粍瀹為檯涓婂氨鏄暟緇勭殑鏁扮粍錛屼緥濡傦紝絎竴涓?Array.get 涔嬪悗錛宎rrobj 鏄竴涓?10 x 15 鐨勬暟緇勩傝繘鑰屽彇寰楀叾涓殑涓涓厓绱狅紝鍗抽暱搴︿負 15 鐨勬暟緇勶紝騫朵嬌鐢?Array.setInt 涓哄畠鐨勭 10 涓厓绱犺祴鍊箋?br />
娉ㄦ剰鍒涘緩鏁扮粍鏃剁殑綾誨瀷鏄姩鎬佺殑錛屽湪緙栬瘧鏃跺茍涓嶇煡閬撳叾綾誨瀷銆?/p>

鎹曢 2007-11-12 14:24 鍙戣〃璇勮
]]>
ProcessFileObject http://www.tkk7.com/zhhp1314520/articles/ProcessFileObject.html鎹曢鎹曢Fri, 30 Mar 2007 15:02:00 GMThttp://www.tkk7.com/zhhp1314520/articles/ProcessFileObject.htmlhttp://www.tkk7.com/zhhp1314520/comments/107566.htmlhttp://www.tkk7.com/zhhp1314520/articles/ProcessFileObject.html#Feedback0http://www.tkk7.com/zhhp1314520/comments/commentRss/107566.htmlhttp://www.tkk7.com/zhhp1314520/services/trackbacks/107566.htmlpackage test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Iterator;

public class ProcessFileObject {

聽protected String filename = "";

聽protected ProcessFileObject(String filename) {
聽聽this.filename = filename;
聽}

聽public ObjectOutputStream oos = null;

聽public ObjectInputStream ios = null;

聽public synchronized boolean insertAssignInfo(String assignid,
聽聽聽String assigncode, String assignname) {

聽聽ArrayList alist = new ArrayList();
聽聽Assign assign = new Assign();
聽聽assign.setAssigncode(assigncode);
聽聽assign.setAssignid(assignid);
聽聽assign.setAssignname(assignname);
聽聽/*try {
聽聽聽System.out.println(filename);
聽聽聽ios = new ObjectInputStream(new FileInputStream(new File(filename)));
聽聽聽alist = (ArrayList) ios.readObject();
聽聽聽ios.close();
聽聽} catch (IOException ioe) {
聽聽聽ioe.printStackTrace();
聽聽} catch (ClassNotFoundException cnfe) {

聽聽}*/
聽聽if (!alist.add(assign)) {
聽聽聽return false;
聽聽}

聽聽try {
聽聽聽oos = new ObjectOutputStream(new FileOutputStream(new File(filename)));
聽聽聽oos.writeObject(alist);
聽聽聽oos.close();
聽聽} catch (IOException ioe) {
聽聽聽ioe.printStackTrace();
聽聽}
聽聽return true;
聽}

聽public synchronized boolean existAssignInfo(String assignid,
聽聽聽String assigncode, String assignname) {

聽聽ArrayList alist = null;
聽聽Assign assign = null;
聽聽try {
聽聽聽ios = new ObjectInputStream(new FileInputStream(filename));
聽聽聽alist = (ArrayList) ios.readObject();
聽聽聽ios.close();
聽聽} catch (IOException ioe) {

聽聽} catch (ClassNotFoundException cnfe) {

聽聽}
聽聽Iterator iter = alist.iterator();
聽聽while (iter.hasNext()) {
聽聽聽assign = (Assign) iter.next();
聽聽聽if (assign.getAssigncode().equals(assigncode)
聽聽聽聽聽&& assign.getAssignid().equals(assignid)
聽聽聽聽聽&& assign.getAssignname().equals(assignname)) {
聽聽聽聽return true;
聽聽聽}
聽聽}

聽聽return false;
聽}

聽public synchronized boolean removebyAssigncode(String assigncode) {

聽聽ArrayList alist = null;
聽聽Assign assign = null;
聽聽try {
聽聽聽ios = new ObjectInputStream(new FileInputStream(filename));
聽聽聽alist = (ArrayList) ios.readObject();
聽聽聽ios.close();
聽聽} catch (IOException ioe) {

聽聽} catch (ClassNotFoundException cnfe) {

聽聽}
聽聽for (int i = 0, j = alist.size(); i < j; i++) {
聽聽聽assign = (Assign) alist.get(i);
聽聽聽if (assign.getAssigncode().equals(assigncode)) {
聽聽聽聽alist.remove(i);
聽聽聽}
聽聽}
聽聽try {
聽聽聽oos = new ObjectOutputStream(new FileOutputStream(filename));
聽聽聽oos.writeObject(alist);
聽聽聽oos.close();
聽聽} catch (IOException ioe) {

聽聽}

聽聽return true;
聽}

聽public synchronized boolean removeAll() {

聽聽ArrayList alist = null;
聽聽try {
聽聽聽oos = new ObjectOutputStream(new FileOutputStream(filename));
聽聽聽oos.writeObject(alist);
聽聽聽oos.close();
聽聽} catch (IOException ioe) {

聽聽}

聽聽return true;
聽}

聽public class Assign implements Serializable {
聽聽public String assignid;

聽聽public String assigncode;

聽聽public String assignname;

聽聽public Assign() {

聽聽}

聽聽public String getAssigncode() {
聽聽聽return assigncode;
聽聽}

聽聽public void setAssigncode(String assigncode) {
聽聽聽this.assigncode = assigncode;
聽聽}

聽聽public String getAssignid() {
聽聽聽return assignid;
聽聽}

聽聽public void setAssignid(String assignid) {
聽聽聽this.assignid = assignid;
聽聽}

聽聽public String getAssignname() {
聽聽聽return assignname;
聽聽}

聽聽public void setAssignname(String assignname) {
聽聽聽this.assignname = assignname;
聽聽}
聽}

}



鎹曢 2007-03-30 23:02 鍙戣〃璇勮
]]>
log4jhttp://www.tkk7.com/zhhp1314520/articles/log4j_config.html鎹曢鎹曢Mon, 26 Mar 2007 12:30:00 GMThttp://www.tkk7.com/zhhp1314520/articles/log4j_config.htmlhttp://www.tkk7.com/zhhp1314520/comments/106512.htmlhttp://www.tkk7.com/zhhp1314520/articles/log4j_config.html#Feedback0http://www.tkk7.com/zhhp1314520/comments/commentRss/106512.htmlhttp://www.tkk7.com/zhhp1314520/services/trackbacks/106512.html Log4j 瀹炲湪鏄緢鐔熸?zhèn)夊Q屽嚑涔庢墍鏈夌殑 Java 欏圭洰閮界敤瀹冨晩銆備絾鏄垜紜竴鐩存病鏈夋悶鏄庣櫧銆傜粓浜庢湁涓澶╂垜鍙椾笉浜嗕簡錛屽畾涓嬪績鍘葷湅浜嗕竴鎶婃枃妗o紝鎵嶄袱涓皬鏃訛紝鎴戠粓浜庢悶鏄庣櫧浜嗐備竴鑸儏鍐典笅 Log4j 鎬繪槸鍜?/span> Apache Commons-logging 涓璧風敤鐨勶紝鎴戜篃灝變竴璧蜂粙緇嶅惂銆傚浜嗕釜涓滆タ涓嶆槸鏇撮夯鐑︼紝鑰屾槸鏇寸畝鍗曪紒

<!--[if !supportLists]-->涓銆?/span><!--[endif]-->Log4j鐨勭畝鍗曟濇兂

Log4j 鐪熺殑寰堢畝鍗曪紝綆鍗曞埌浠や漢鍙戞寚鐨勫湴姝ャ備笉鏄璁板綍鏃ュ織鍚楋紵閭e氨緇欎綘涓涓?/span> Log 錛岀劧鍚庝綘鐢?/span> Log 鏉ュ啓涓滆タ灝辮浜嗭紝鍏堟潵涓涓畬鏁寸被紺轟緥錛?/span>

package test;

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

public class Test {

聽聽聽 聽聽聽 static Log log = LogFactory.getLog(Test. class );
聽聽聽聽聽聽聽聽//protected final Log log = LogFactory.getLog(this.getClass());

聽聽聽 聽聽聽 public void log(){

聽聽聽聽聽聽 聽聽聽 log .debug( "Debug info." );

聽聽聽聽聽聽 聽聽聽 log .info( "Info info" );

聽聽聽聽聽聽 聽聽聽 log .warn( "Warn info" );

聽聽聽聽聽聽 聽聽聽 log .error( "Error info" );

聽聽聽聽聽聽 聽聽聽 log .fatal( "Fatal info" );

聽聽聽 聽聽聽 }

聽聽聽 聽聽聽 /**

聽聽聽 聽聽 * @param args

聽聽聽 聽聽 */

聽聽聽 聽聽聽 public static void main(String[] args) {

聽聽聽聽聽聽 聽聽聽 Test test = new Test();

聽聽聽聽聽聽 聽聽聽 test.log();

聽聽聽 聽聽聽 }

}

鍒曪紝鐪嬪畬榪欑瘒鏂囩珷浣犲氨浼氳寰楀緢綆鍗曚簡銆?/span>

聽聽聽 聽聽聽 Log4j 榛樿鎶婃棩蹇椾俊鎭垎涓轟簲涓瓑綰?/span>

聽聽聽 聽聽聽 debug < info < warn < error < fatal

铏界劧鍙互鑷繁娣誨姞絳夌駭錛屼絾鏄垜瑙夊緱娌℃湁蹇呰錛屼簲涓鐢ㄤ簡鍚э紒浣犺鍐欏叆淇℃伅鐨勬椂鍊欏氨鎶婁俊鎭綊涓轟簲涓瓑綰т腑鐨勪竴涓紝鐒跺悗璋冪敤鐩稿簲鐨勫嚱鏁板嵆鍙?/span>

聽聽聽 鍒嗕簲涓瓑綰у埌搴曟湁浠涔堢敤鍛紵鏃ュ織淇℃伅鍒板簳鍐欏埌鍝噷鍘諱簡錛?/span>

聽聽聽 鈥?/span> LogFactory.getLog(Test. class ) 鈥濆張鏄粈涔堟剰鎬濇崗錛熸帴鐫寰涓嬬湅鍚э紒

Log4j 鐨勫叧閿箣澶勫湪浜庡畠鐨勭戶鎵挎濇兂銆備篃灝辨槸涓涓?/span> Log 鍙互緇ф壙鍙﹀涓涓?/span> Log 鐨勫睘鎬э紙杈撳嚭鍒板摢閲岋紝鏃ュ織絳夌駭錛屾棩蹇楁牸寮忕瓑絳夛級銆傛庝箞緇ф壙錛?/span>

Log4j 鏄牴鎹?/span> Log 鐨勫悕瀛楁潵鍒ゆ柇緇ф壙鍏崇郴鐨勶紝姣斿錛?/span>

鍚嶅瓧涓衡?/span> com.zhlmmc.lib 鈥濈殑 Log 灝辨槸鈥?/span> com.zhlmmc.lib.log 鈥濈殑 parent 錛屾槑鐧戒簡鍚э紒 Log4j 榪樻湁涓涓?/span> rootLogger 錛岀浉褰撲簬 Java 鐨?/span> Object 銆?/span>

鍥炶繃澶存潵鐪嬧?/span> LogFactory.getLog(Test. class ) 鈥濊繖閲岀殑鈥?/span> Test. class 鈥濅簨瀹炰笂浼犺繘鍘葷殑鏄?/span> Test 榪欎釜綾葷殑瀹屾暣璺緞錛堝寘鍚?/span> + 綾誨悕錛夛紝鈥?/span> test.Test 鈥濄傝繖鏍峰鏋滃瓨鍦ㄢ?/span> test 鈥濊繖涓?/span> Log 閭d箞 Test 榪欎釜 Log 灝辯戶鎵垮畠錛屽惁鍒欏氨緇ф壙 rootLogger 銆?/span>

聽聽聽 閭e叿浣撶殑 Log 灞炴ф槸鍦ㄥ摢閲屽畾涔夌殑鍛紵

<!--[if !supportLists]-->浜屻?/span><!--[endif]-->甯歌鐨勯厤緗枃浠?/span>

铏界劧鍙互鐢?/span> xml 鎴栬呭湪榪愯鏃剁敤 Java 鏉ラ厤緗?/span> Log4j 錛屼絾榪樻槸 properties 鏂囦歡濂界敤鍟婏紒

log4j.rootLogger= info, stdout

log4j.appender.stdout= org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout= org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number.

log4j.appender.stdout.layout.ConversionPattern= %5p [%t] (%F : %L) - %m%n

鍒嗘瀽涓涓嬶細

絎竴琛岋紝閰嶇疆 log4j.rootLogger 浣犳槑鐧藉惂銆傚簲涓哄畠鏄牴錛屾誨緱閰嶇疆涓涓嬶紝鍚﹀垯鍒殑 Log 緇ф壙浠涔堝晩銆傚叾浠栫殑 Log 鍙互閰嶇疆涔熷彲浠ヤ笉閰嶇疆銆傜瓑鍙峰悗闈㈢殑絎竴涓弬鏁拌〃紺烘棩蹇楃駭鍒紝鍙互濉簲涓駭鍒腑鐨勪竴縐嶏紝鍚庨潰鐨勫弬鏁伴兘鏄 Log 鐭ラ亾杈撳嚭鍒板摢閲岋紝濡傛灉浣犳兂璁╂棩蹇楄緭鍑哄埌涓や釜鍦版柟灝卞姞涓や釜杈撳嚭鍙傛暟錛屾瘮濡傦細

log4j.rootLogger= info, stdout, file

榪欓噷鐨?/span> info 琛ㄧず錛岃 Log 鐨勬棩蹇楃駭鍒負 info 錛屾墍鏈夌駭鍒皬浜?/span> info 鐨勬棩蹇楅兘涓嶄細琚褰曘傛瘮濡備嬌鐢ㄨ繖涓厤緗枃浠剁殑璇濓紝鎴戝垰寮濮嬩婦鐨勯偅涓被涓?/span>

log .debug( "Debug info." );

榪欏彞璇濇槸涓嶈搗浣滅敤鐨勶紝鍥犱負 debug 鐨勭駭鍒皬浜?/span> info 銆傝繖鏍峰氨寰堝鏄撴帶鍒朵粈涔堜俊鎭湪璋冭瘯鐨勬椂鍊欒鏄劇ず錛屼粈涔堜俊鎭湪鍙戝竷鐨勬椂鍊欒鍘繪帀銆傝繖浜涢兘涓嶇敤鏀逛唬鐮侊紝寰堟柟渚垮惂銆?/span>

浣嗭紝 stdout 鍜?/span> file 鍙堟槸浠涔堝憿錛?/span>

鎺ョ潃寰涓嬬湅錛屽氨鏄厤緗?/span> stdout 浜嗭紝榪欎釜鍚嶅瓧鏄殢渚垮彇鐨勶紝浣犲彲浠ュ彨瀹?/span> A 錛?/span>

log4j.appender.A= org.apache.log4j.ConsoleAppender

閭d箞涓婇潰鐨?/span> rootLogger 鐨勫弬鏁?/span> stdout 涔熻鏀規(guī)垚 A 錛屽叾浠栫敤鍒扮殑鍦版柟褰撶劧涔熻鏀廣傝繖閲岀殑鍏抽敭涓嶆槸鍚嶅瓧錛岃屾槸 appender 綾誨瀷錛屾瘮濡傝繖閲岀殑鈥?/span> ConsoleAppender 鈥濓紝鐪嬫槑鐧戒簡鍚э紝杈撳嚭鍒?/span> Console 銆傚悗闈袱琛岄兘鏄緗棩蹇楁牸寮忕殑錛屼竴鑸儏鍐典笅浣犲氨鐓ф妱鍚с傛棦鐒舵槸鏈綆鍏ラ棬鍏蟲敞浜庣悊瑙?/span> Log4j 鐨勫伐浣滃師鐞嗭紝鎴戝氨涓嶄粙緇?/span> file 綾誨瀷鐨?/span> appender 浜嗭紝涓鎼滀竴澶ф妸銆?/span>

鍦ㄥ疄闄呯殑欏圭洰寮鍙戜腑錛屽緢鍙兘閬囧埌鎵寮曠敤鐨勫寘鐢?/span> Log4j 鏉ヨ褰曟棩蹇楋紝姣斿 Hibernate 銆傞偅涔堝湪榪欓噷浣犲彲浠ュ緢瀹規(guī)槗鐨勬帶鍒惰繖涓寘濡備綍璁板綍鏃ュ織銆傛瘮濡傚湪涓婇潰鐨勯厤緗枃浠朵腑鍔犱竴琛岋細

log4j.logger.org.hibernate= fatal

聽聽聽 閭d箞鎵鏈?/span> org.hibernate 鍖呬笅闈㈢殑綾誨氨鍙細鏄劇ず寰堝皯鐨勪俊鎭紝鍥犱負 fatal 鐨勭駭鍒渶楂樺晩銆?/span>

<!--[if !supportLists]-->涓夈?/span><!--[endif]-->閮ㄧ講

鍒曪紝榪欏彲涓嶆槸閮ㄧ講 Tomcat 銆傛妸 log4j 鐨勫寘鍜?/span> commons-logging 鐨勫寘錛堝姞鍦ㄤ竴璧鋒墠涓や釜錛夋斁鍒?/span> classpath 涓嬮潰銆傜劧鍚庢妸閰嶇疆鏂囦歡淇濆瓨涓?/span> log4j.properties 錛屼篃鏀懼湪 classpath 涓嬮潰錛堝鏋滅敤 Eclipse 鐨勮瘽錛屾斁鍦?/span> src 鐩綍涓嬪嵆鍙級銆傜劧鍚庝綘灝卞彲浠ヨ窇浜嗐?/span>



鎹曢 2007-03-26 20:30 鍙戣〃璇勮
]]>
鍦ㄥ揩鎹鋒柟寮忎腑璁劇疆java鐜鍙橀噺http://www.tkk7.com/zhhp1314520/articles/java_jre.html鎹曢鎹曢Thu, 11 Jan 2007 06:33:00 GMThttp://www.tkk7.com/zhhp1314520/articles/java_jre.htmlhttp://www.tkk7.com/zhhp1314520/comments/93158.htmlhttp://www.tkk7.com/zhhp1314520/articles/java_jre.html#Feedback0http://www.tkk7.com/zhhp1314520/comments/commentRss/93158.htmlhttp://www.tkk7.com/zhhp1314520/services/trackbacks/93158.html

鎹曢 2007-01-11 14:33 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 亚洲精品自偷自拍无码| 处破痛哭A√18成年片免费| 中文字幕亚洲第一在线| 91在线视频免费播放| 亚洲色婷婷一区二区三区| 久久免费区一区二区三波多野| 午夜免费1000部| 亚洲国产女人aaa毛片在线| 亚洲国产美女福利直播秀一区二区| 亚洲入口无毒网址你懂的| 99精品在线免费观看| 亚洲国产精品久久久久| 好爽又高潮了毛片免费下载 | 亚洲国产精品无码久久久| 日本黄色免费观看| 久久午夜无码免费| 女人裸身j部免费视频无遮挡| 日韩av无码免费播放| 免费人成在线观看网站品爱网日本 | 国产精品亚洲产品一区二区三区 | 久久精品国产精品亚洲蜜月| 午夜视频免费观看| 无码精品一区二区三区免费视频| 国产aⅴ无码专区亚洲av| 午夜无遮挡羞羞漫画免费| 桃子视频在线观看高清免费视频| 亚洲综合无码精品一区二区三区| 美女巨胸喷奶水视频www免费| 亚洲熟女一区二区三区| 亚洲视频在线免费观看| 人体大胆做受免费视频| 亚洲精品视频免费| 亚洲 日韩 色 图网站| 成人毛片免费观看视频大全| 99亚洲乱人伦aⅴ精品| 911精品国产亚洲日本美国韩国 | 亚洲AV区无码字幕中文色| www亚洲精品少妇裸乳一区二区| 亚洲专区一路线二| 国产区卡一卡二卡三乱码免费| 精品亚洲AV无码一区二区|