⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testparamnameextractor.java

📁 Java有关XML编程需要用到axis 的源代码 把里面bin下的包导入相应的Java工程 进行使用
💻 JAVA
字号:
package test.utils.bytecode;import junit.framework.TestCase;import junit.framework.Test;import junit.framework.TestSuite;import java.lang.reflect.Method;import java.util.List;import java.util.ArrayList;import org.apache.axis.utils.bytecode.ParamNameExtractor;/** * Description * User: pengyu * Date: Sep 12, 2003 * Time: 11:47:48 PM *  */public class TestParamNameExtractor extends TestCase {    TestClass t = null;    public TestParamNameExtractor(String name) {        super(name);    }    public static Test suite() {        return new TestSuite(TestParamNameExtractor.class);    }    protected void setup() {        t = this.new TestClass();    }    public void testExtractParameter() {        //now get the nonoverloadmethod        Method[] methods = TestClass.class.getMethods();        Method method = null;        for (int i = 0; i < methods.length; i++) {            if (methods[i].getName().equals("nonOverloadMethod")) {                method = methods[i];            }        }        assertTrue("Find nonOverloadMethod", method != null);        String[] params = ParamNameExtractor.getParameterNamesFromDebugInfo(method);        assertTrue("Number of parameter is right", params.length == 2);        assertTrue("First name of parameter is intValue", params[0].equals("intValue"));        assertTrue("Second name of parameter is boolValue", params[1].equals("boolValue"));    }    public void testExtractOverloadedParameter() {        Method[] methods = TestClass.class.getMethods();        List matchMethods = new ArrayList();        for (int i = 0; i < methods.length; i++) {            if (methods[i].getName().equals("overloadedMethod")) {                matchMethods.add(methods[i]);            }        }        assertTrue("Found two overloaded methods", matchMethods.size() == 2);        boolean foundBoolean = false;        boolean foundInt = false;        for (int i = 0; i < 2; i++) {            Method method = (Method) matchMethods.get(i);            Class[] paramTypes = method.getParameterTypes();            assertTrue("only one parameter found", paramTypes.length == 1);            assertTrue("It has to be either boolean or int",                    (paramTypes[0] == Integer.TYPE) ||                    (paramTypes[0] == Boolean.TYPE));            String[] params = ParamNameExtractor.getParameterNamesFromDebugInfo(method);            assertTrue("Only parameter found", params.length == 1);            if (paramTypes[0] == Integer.TYPE) {                if (foundInt) { //already found such method so something is wrong                    fail("It is wrong type, should not be int");                }else {                    foundInt = true;                }                assertTrue("parameter is 'intValue'", params[0].equals("intValue"));            } else if (paramTypes[0] == Boolean.TYPE) {                if (foundBoolean) {                    fail("It is wrong type, should not be boolean");                }else {                    foundBoolean = true;                }                assertTrue("parameter is 'boolValue'", params[0].equals("boolValue"));            }        }    }    class TestClass {        public void nonOverloadMethod(int intValue, boolean boolValue) {        }        public void overloadedMethod(int intValue) {        }        public void overloadedMethod(boolean boolValue) {        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -