{"id":35918,"date":"2024-11-26T09:12:21","date_gmt":"2024-11-26T01:12:21","guid":{"rendered":"https:\/\/fwq.ai\/blog\/35918\/"},"modified":"2024-11-26T09:12:21","modified_gmt":"2024-11-26T01:12:21","slug":"%e5%a6%82%e4%bd%95%e4%bc%98%e5%8c%96%e9%80%92%e8%bf%9b%e5%bc%8f%e5%88%a4%e6%96%ad%e4%bb%a3%e7%a0%81%ef%bc%9f","status":"publish","type":"post","link":"https:\/\/fwq.ai\/blog\/35918\/","title":{"rendered":"\u5982\u4f55\u4f18\u5316\u9012\u8fdb\u5f0f\u5224\u65ad\u4ee3\u7801\uff1f"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/img.php.cn\/upload\/article\/001\/246\/273\/173080506046794.jpg\" class=\"aligncenter\" title=\"\u5982\u4f55\u4f18\u5316\u9012\u8fdb\u5f0f\u5224\u65ad\u4ee3\u7801\uff1f\u63d2\u56fe\" alt=\"\u5982\u4f55\u4f18\u5316\u9012\u8fdb\u5f0f\u5224\u65ad\u4ee3\u7801\uff1f\u63d2\u56fe\" \/><\/p>\n<p><strong>\u4f18\u5316\u9012\u8fdb\u5f0f\u5224\u65ad\u4ee3\u7801\u7684\u4e24\u79cd\u65b9\u6848<\/strong><\/p>\n<p>\u7ed9\u5b9a\u4ee3\u7801\u4e2d\u9012\u8fdb\u5f0f\u5224\u65ad\u5b58\u5728\u5197\u4f59\uff0c\u53ef\u4ee5\u901a\u8fc7\u4e24\u79cd\u4f18\u5316\u65b9\u6848\u6765\u6539\u5584\uff1a<\/p>\n<p><strong>\u65b9\u6848\u4e00\uff1a\u5229\u7528\u4f4d\u5411\u91cf<\/strong><\/p>\n<p>\u5c06\u5b57\u7b26\u5224\u65ad\u7ed3\u679c\u7528\u4f4d\u5411\u91cf\u8868\u793a\uff1a<\/p>\n<pre>\/**\n * \u90fd\u4e0d\u4e3a\u7a7a\n *\/\nprivate static final int code_condition_one = 0000;\n\n\/**\n * abc\u4e0d\u4e3a\u7a7a d\u4e3a\u7a7a\n *\/\nprivate static final int code_condition_two = 0001;\n\nprivate static final int code_condition_three = 0011;\n\nprivate static final int code_condition_four = 0111;\n\nprivate static final int code_condition_five = 1111;<\/pre>\n<p>  \u767b\u5f55\u540e\u590d\u5236   <\/p>\n<p>\u7136\u540e\u91cd\u6784\u65b9\u6cd5\u5982\u4e0b\uff1a<\/p>\n<pre>private static void test(string a,string b,string c,string d){\n    switch (init(a,b,c,d)){\n        case code_condition_one:\n            \/\/ do something ...\n            break;\n        case code_condition_two:\n            \/\/do something ...\n            break;\n        case code_condition_three:\n            \/\/do something ...\n            break;\n        case code_condition_four:\n            \/\/do something ...\n            break;\n        case code_condition_five:\n            \/\/do something ...\n            break;\n    }\n}\n\nprivate static int init(string ... allparam){\n    if(allparam == null){\n        return 1;\n    }\n    string resultnumberstr = \"\";\n    for (string s : allparam) {\n        resultnumberstr += stringutils.isnotempty(s) ? 0 : 1;\n    }\n    return integer.valueof(resultnumberstr);\n}<\/pre>\n<p>  \u767b\u5f55\u540e\u590d\u5236   <\/p>\n<p><strong>\u65b9\u6848\u4e8c\uff1a\u53cd\u5c04+\u6307\u4ee4\u6620\u5c04\u8868<\/strong><\/p>\n<pre>@Getter\nclass SolutionTwo{\n\n    private static Object result;\n\n    @Data\n    private static class Action{\n        \/**\n         * \u76ee\u6807\u7c7b\n         *\/\n        private Class targetInvokeClass;\n\n        \/**\n         * \u76ee\u6807\u7c7b\u4e2d\u76ee\u6807\u65b9\u6cd5\n         *\/\n        private String targetMethodName;\n\n        \/**\n         * \u53c2\u6570\u7c7b\u578b\n         *\/\n        private Class[] parameterTypes;\n\n        \/**\n         * \u76ee\u6807\u65b9\u6cd5\u53c2\u6570\u5bf9\u8c61\n         *\/\n        private Object[] params;\n\n        \/**\n         * \u662f\u5426\u662f\u5f53\u524d\u7c7b\u4e2d\u65b9\u6cd5\n         *\/\n        private boolean isCurrentClass;\n\n        \/**\n         * \u662f\u5426\u65b9\u6cd5\u4e0d\u9700\u8981\u53c2\u6570\n         *\/\n        private boolean isNoParams;\n\n        public Action(){\n\n        }\n\n        public Action(Class targetInvokeClass, String targetMethodName,Class[] parameterTypes, Object[] params, boolean isCurrentClass, boolean isNoParams) {\n            this.targetInvokeClass = targetInvokeClass;\n            this.targetMethodName = targetMethodName;\n            this.parameterTypes = parameterTypes;\n            this.params = params;\n            this.isCurrentClass = isCurrentClass;\n            this.isNoParams = isNoParams;\n        }\n    }\n\n    \/**\n     * \u6620\u5c04Map\n     * \u6cdb\u578bObject\u662f\u6307\u4ee4,\n     * \u6cdb\u578bAction\u662f\u6307\u4ee4\u5bf9\u5e94\u7684\u6267\u884c\u65b9\u6848\n     *\/\n    private static final HashMap&lt;Object,Action&gt; ACTION_MAP = new HashMap&lt;&gt;(16);\n\n    static class ResultAction{\n\n        public void helloWorld(String name){\n            System.out.println(name + \",\u4f60\u597d\u4e16\u754c\");\n        }\n\n    }\n\n\n    static {\n        \/\/\u90fd\u4e0d\u4e3a\u7a7a\n        ACTION_MAP.put(0,new Action(ResultAction.class,\"helloWorld\",new Class[]{String.class},new String[]{\"\u6211\u662f\u5f20\u4e09\"},false,false));\n        \/\/abc\u4e0d\u4e3a\u7a7a d\u4e3a\u7a7a\n        ACTION_MAP.put(1,new Action(ResultAction.class,\"helloWorld\",new Class[]{String.class},new String[]{\"\u6211\u662f\u674e\u56db\"},false,false));\n        \/\/ab\u4e0d\u4e3a\u7a7a cd\u4e3a\u7a7a\n        ACTION_MAP.put(11,new Action(ResultAction.class,\"helloWorld\",new Class[]{String.class},new String[]{\"\u6211\u662f\u738b\u4e94\"},false,false));\n        \/\/a\u4e0d\u4e3a\u7a7a bcd\u4e3a\u7a7a\n        ACTION_MAP.put(111,new Action(ResultAction.class,\"helloWorld\",new Class[]{String.class},new String[]{\"\u6211\u662f\u8d75\u516d\"},false,false));\n        \/\/abcd\u90fd\u4e3a\u7a7a\n        ACTION_MAP.put(1111,new Action(ResultAction.class,\"helloWorld\",new Class[]{String.class},new String[]{\"\u6211\u662f\u5f20\u4e09\u4ed6\u7239\"},false,false));\n    }\n\n    private static void test(String a,String b,String c,String d){\n        int result = init(a, b, c, d);\n        Action action = ACTION_MAP.get(result);\n        if(action != null){\n            handler(action);\n        }else{\n            System.out.println(\"\u672a\u627e\u5230\u5bf9\u5e94\u6620\u5c04\u952e\");\n        }\n    }\n\n    private static void handler(Action action) {\n        try {\n            Method method = null;\n            Class cls = null;\n            if (action.isCurrentClass()) {\n                method = getMethod(SolutionTwo.class,action.getTargetMethodName(),action.getParameterTypes());\n                cls = SolutionTwo.class;\n            }else{\n                Class targetClass = action.getTargetInvokeClass();\n                method = getMethod(targetClass, action.getTargetMethodName(), action.getParameterTypes());\n                cls = action.getTargetInvokeClass();\n            }\n            result = method.invoke(cls.newInstance(), action.getParams());\n        } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException | InstantiationException e) {\n            e.printStackTrace();\n        }\n    }\n\n\n    private static Method getMethod(Class cls,String methodName,Class[] parameterTypes) throws NoSuchMethodException {\n        return cls.getMethod(methodName,parameterTypes);\n    }\n\n\n    private static int init(String ... allParam){\n        if(allParam == null){\n            return 1;\n        }\n        String resultNumberStr = \"\";\n        for (String s : allParam) {\n            resultNumberStr += StringUtils.isNotEmpty(s) ? 0 : 1;\n        }\n        return Integer.valueOf(resultNumberStr);\n    }\n}<\/pre>\n<p>  \u767b\u5f55\u540e\u590d\u5236   <\/p>\n<p>\u4ee5\u4e0a\u5c31\u662f\u5982\u4f55\u4f18\u5316\u9012\u8fdb\u5f0f\u5224\u65ad\u4ee3\u7801\uff1f\u7684\u8be6\u7ec6\u5185\u5bb9\uff0c\u66f4\u591a\u8bf7\u5173\u6ce8\u7c73\u4e91\u5176\u5b83\u76f8\u5173\u6587\u7ae0\uff01<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4f18\u5316\u9012\u8fdb\u5f0f\u5224\u65ad\u4ee3\u7801\u7684\u4e24\u79cd\u65b9\u6848 \u7ed9\u5b9a\u4ee3\u7801\u4e2d\u9012\u8fdb\u5f0f\u5224\u65ad\u5b58\u5728\u5197\u4f59\uff0c\u53ef\u4ee5\u901a\u8fc7\u4e24\u79cd\u4f18\u5316\u65b9\u6848\u6765\u6539\u5584\uff1a \u65b9\u6848\u4e00\uff1a\u5229\u7528\u4f4d\u5411\u91cf \u5c06\u5b57\u7b26\u5224\u65ad\u7ed3\u679c\u7528\u4f4d\u5411\u91cf\u8868\u793a\uff1a \/** * \u90fd\u4e0d\u4e3a\u7a7a *\/ private static final int code_condition_one = 0000; \/** * abc\u4e0d\u4e3a\u7a7a d\u4e3a\u7a7a *\/ private static final int code_condition_two = 0001; private static final int code_condition_three = 0011; private static final int code_condition_four = 0111; private static final int code_condition_five = 1111; \u767b\u5f55\u540e\u590d\u5236 \u7136\u540e\u91cd\u6784\u65b9\u6cd5\u5982\u4e0b\uff1a private static void test(string a,string [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[],"class_list":["post-35918","post","type-post","status-publish","format-standard","hentry","category-16"],"_links":{"self":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/35918","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/comments?post=35918"}],"version-history":[{"count":0,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/35918\/revisions"}],"wp:attachment":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/media?parent=35918"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/categories?post=35918"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/tags?post=35918"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}