{"id":103,"date":"2015-03-30T14:41:02","date_gmt":"2015-03-30T06:41:02","guid":{"rendered":"https:\/\/ai.zhousir.top\/?p=103"},"modified":"2026-08-18T12:09:26","modified_gmt":"2026-08-18T04:09:26","slug":"java%e5%8f%8d%e5%b0%84%e6%9c%ba%e5%88%b6","status":"publish","type":"post","link":"https:\/\/ai.zhousir.top\/?p=103","title":{"rendered":"Java\u53cd\u5c04\u673a\u5236"},"content":{"rendered":"<section id=\"wenyan\" style=\"font-family: system-ui, 'Apple Color Emoji', 'Segoe UI', 'Segoe UI Symbol', 'Noto Sans', Roboto, sans-serif; line-height: 1.75; font-size: 16px; color: #000000; caret-color: #000000;\" data-provider=\"WenYan\">\n<p style=\"margin: 1em 0px;\">Java <strong style=\"color: #4870ac;\">\u53cd\u5c04<\/strong>\u6307\uff1a\u8fd0\u884c\u65f6\u5bf9\u4efb\u610f\u7c7b\u90fd\u80fd\u67e5\u51fa\u5168\u90e8\u5c5e\u6027\u548c\u65b9\u6cd5\uff0c\u5bf9\u4efb\u610f\u5bf9\u8c61\u90fd\u80fd\u8c03\u7528\u4efb\u610f\u65b9\u6cd5\u548c\u5c5e\u6027\u3002\u52a8\u6001\u62ff\u5230\u8fd9\u4e9b\u4fe1\u606f\u3001\u52a8\u6001\u8c03\u7528\u5bf9\u8c61\u65b9\u6cd5\uff0c\u5c31\u662f\u8bed\u8a00\u5c42\u9762\u7684\u53cd\u5c04\u673a\u5236\u3002<\/p>\n<p style=\"margin: 1em 0px;\">\u5b83\u4f9d\u8d56\u8fd0\u884c\u65f6\u7531\u7c7b\u52a0\u8f7d\u5668\u88c5\u5165\u7684 <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">Class<\/code> \u5bf9\u8c61\uff1a\u7f16\u8bd1\u671f\u770b\u4e0d\u5230\u7684\u4fe1\u606f\u90fd\u8bb0\u5728\u8fd9\u4efd\u5143\u6570\u636e\u91cc\uff0c\u7a0b\u5e8f\u624d\u80fd\u5728\u542f\u52a8\u540e\u6309\u9700\u88c5\u8f7d\u3001\u67e5\u770b\u3001\u751f\u6210\u5bf9\u8c61\u5e76\u6539\u5199\u4fe1\u606f\u3002\u8fdc\u7a0b\u65b9\u6cd5\u8c03\u7528\u3001\u5bb9\u5668\u53d6\u51fa\u7ec4\u4ef6\uff0c\u90fd\u9760\u8fd9\u4e00\u5957\u3002<\/p>\n<p><!--more--><\/p>\n<h2 style=\"padding: 1px 12.5px; color: #ffffff; margin: 1.2em 0px 1em; border-radius: 4px; display: inline-block; background-color: #4870ac; font-size: 1.3em;\">\u4e00\u3001\u53cd\u5c04\u80cc\u666f\uff1a\u7f16\u8bd1\u65f6\u4e0e\u8fd0\u884c\u65f6<\/h2>\n<p style=\"margin: 1em 0px;\">\u5148\u628a\u51e0\u4e2a\u5bb9\u6613\u6df7\u7684\u8bcd\u5206\u6e05\u3002<strong style=\"color: #4870ac;\">\u7f16\u8bd1<\/strong>\u662f\u628a\u6e90\u7a0b\u5e8f\u7ffb\u6210\u673a\u5668\u80fd\u6267\u884c\u7684\u5f62\u5f0f\uff1b\u5728 Java \u91cc\u5c31\u662f\u628a <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">.java<\/code> \u7ffb\u6210 <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">.class<\/code> \u5b57\u8282\u7801\u3002\u8fd9\u4e2a\u8fc7\u7a0b\u53eb<strong style=\"color: #4870ac;\">\u7f16\u8bd1\u65f6<\/strong>\u3002<strong style=\"color: #4870ac;\">\u8fd0\u884c\u65f6<\/strong>\u5219\u662f\u7c7b\u52a0\u8f7d\u5668\u88c5\u5165\u5b57\u8282\u7801\uff0c\u4ea4\u7ed9 JVM \u89e3\u91ca\u6267\u884c\u3002<\/p>\n<p style=\"margin: 1em 0px;\"><strong style=\"color: #4870ac;\">\u7f16\u8bd1\u578b\u8bed\u8a00<\/strong>\u4e00\u6b21\u5168\u90e8\u7ffb\u6210\u4e8c\u8fdb\u5236\u518d\u8dd1\uff0c\u6548\u7387\u9ad8\u3001\u4f9d\u8d56\u7f16\u8bd1\u5668\u3001\u8de8\u5e73\u53f0\u5f31\uff1b<strong style=\"color: #4870ac;\">\u89e3\u91ca\u578b\u8bed\u8a00<\/strong>\u7ffb\u4e00\u53e5\u6267\u884c\u4e00\u53e5\uff0c\u6548\u7387\u4f4e\u3001\u4f9d\u8d56\u89e3\u91ca\u5668\u3001\u8de8\u5e73\u53f0\u5f3a\u3002Java \u662f\u65e2\u7f16\u8bd1\u53c8\u89e3\u91ca\u3002<\/p>\n<p style=\"margin: 1em 0px;\"><strong style=\"color: #4870ac;\">\u7c7b\u52a0\u8f7d\u5668<\/strong>\u8d1f\u8d23\u628a\u7f16\u8bd1\u597d\u7684\u5b57\u8282\u7801\u9001\u5230\u6821\u9a8c\u5668\u505a\u5b89\u5168\u68c0\u67e5\uff0c\u901a\u8fc7\u540e\u518d\u89e3\u91ca\u6267\u884c\u3002<strong style=\"color: #4870ac;\">\u8fd0\u884c\u65f6\u52a8\u6001\u52a0\u8f7d<\/strong>\u5c31\u662f\uff1a\u771f\u6b63\u7528\u5230\u4e00\u4e2a\u7c7b\uff08\u6709\u5b9e\u4f8b\u3001\u8c03\u4e86\u9759\u6001\u6210\u5458\uff09\u65f6\u624d\u88c5\u5b83\u3002\u901a\u8fc7 Class \u5bf9\u8c61\u5728\u8fd0\u884c\u65f6\u64cd\u4f5c\u7c7b\u4fe1\u606f\uff0c\u50cf\u7167\u955c\u5b50\u2014\u2014\u6240\u4ee5\u53eb\u53cd\u5c04\u3002<\/p>\n<p style=\"margin: 1em 0px;\">\u9762\u5411\u5bf9\u8c61\u91cc\u4e07\u4e8b\u7686\u5bf9\u8c61\u3002\u7c7b\u672c\u8eab\u4e5f\u662f\u5bf9\u8c61\uff1a\u5b83\u662f <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.lang.Class<\/code> \u7684\u5b9e\u4f8b\u3002\u9759\u6001\u6210\u5458\u3001\u57fa\u672c\u7c7b\u578b\u4e0d\u662f\u666e\u901a\u5bf9\u8c61\uff0c\u4f46\u5bf9\u5e94\u7684 Class \u5bf9\u8c61\u4ecd\u7136\u5b58\u5728\u3002<\/p>\n<h2 style=\"padding: 1px 12.5px; color: #ffffff; margin: 1.2em 0px 1em; border-radius: 4px; display: inline-block; background-color: #4870ac; font-size: 1.3em;\">\u4e8c\u3001\u4e09\u79cd\u62ff\u5230 Class \u5bf9\u8c61\u7684\u65b9\u5f0f<\/h2>\n<p style=\"margin: 1em 0px;\">\u53cd\u5c04\u7684\u5165\u53e3\u6c38\u8fdc\u662f Class\u3002\u4e09\u79cd\u5199\u6cd5\uff1a<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">1\uff0e\u8c03\u7528\u5bf9\u8c61\u7684getClass\u65b9\u6cd5\uff0c\u8fd4\u56de\u8be5\u5bf9\u8c61\u7684Class\u5bf9\u8c61; Class c=Object.getClass();\n\n2\uff0eClass.forName(\u201c\u7c7b\u7684\u540d\u5b57\u201d);  Class c=Class.forName (\u201c\u2026\u201d);\n\n3\uff0eClass c=\u7c7b\u540d.class;  Class c=String.class;<\/code><\/pre>\n<p style=\"margin: 1em 0px;\">\u7b2c\u4e00\u79cd\u8d70\u5b9e\u4f8b\u7684 <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">getClass()<\/code>\uff1b\u7b2c\u4e8c\u79cd <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">Class.forName<\/code> \u6309\u5168\u540d\u52a8\u6001\u88c5\u8f7d\uff08\u6700\u5e38\u89c1\uff09\uff1b\u7b2c\u4e09\u79cd <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">\u7c7b\u540d.class<\/code> \u5728\u7f16\u8bd1\u671f\u5c31\u7ed1\u5b9a\u5b57\u9762\u91cf\u3002<\/p>\n<table style=\"display: table; text-align: left; overflow: auto; border-collapse: collapse; margin: 1.4em auto; max-width: 100%; table-layout: fixed; overflow-wrap: break-word; word-break: break-all;\" width=\"800\">\n<thead>\n<tr>\n<th style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top; text-align: center; font-weight: bold; color: #4870ac; background: #f7f7f7;\">\u65b9\u5f0f<\/th>\n<th style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top; text-align: center; font-weight: bold; color: #4870ac; background: #f7f7f7;\">\u5199\u6cd5<\/th>\n<th style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top; text-align: center; font-weight: bold; color: #4870ac; background: #f7f7f7;\">\u5178\u578b\u573a\u666f<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u5b9e\u4f8b\u65b9\u6cd5<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\"><code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">obj.getClass()<\/code><\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u624b\u91cc\u5df2\u6709\u5bf9\u8c61<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u5168\u540d\u88c5\u8f7d<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\"><code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">Class.forName(\"pkg.Name\")<\/code><\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u914d\u7f6e\u9a71\u52a8\u3001\u5de5\u5382\u3001\u6846\u67b6<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u7c7b\u5b57\u9762\u91cf<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\"><code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">String.class<\/code><\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u7f16\u8bd1\u671f\u5df2\u77e5\u76ee\u6807\u7c7b\u578b<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 style=\"padding: 1px 12.5px; color: #ffffff; margin: 1.2em 0px 1em; border-radius: 4px; display: inline-block; background-color: #4870ac; font-size: 1.3em;\">\u4e09\u3001reflect \u5305\u91cc\u7684\u4e09\u7c7b\u94a5\u5319<\/h2>\n<p style=\"margin: 1em 0px;\"><code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.lang.reflect<\/code> \u63d0\u4f9b\u4e09\u628a\u94a5\u5319\uff1a<\/p>\n<ul style=\"padding-left: 1rem; margin-left: 1rem; font-size: 0.9rem; list-style-type: disc;\">\n<li>\n<section><strong style=\"color: #4870ac;\">Method<\/strong>\uff1a\u65b9\u6cd5\u4fe1\u606f\uff0c\u4ee5\u53ca\u8c03\u7528\u63a5\u53e3\u3002<\/section>\n<\/li>\n<li>\n<section><strong style=\"color: #4870ac;\">Constructor<\/strong>\uff1a\u6784\u9020\u5668\u4fe1\u606f\uff0c\u4ee5\u53ca\u521b\u5efa\u5b9e\u4f8b\u7684\u63a5\u53e3\u3002<\/section>\n<\/li>\n<li>\n<section><strong style=\"color: #4870ac;\">Field<\/strong>\uff1a\u57df\uff08\u5b57\u6bb5\uff09\u4fe1\u606f\uff0c\u4ee5\u53ca\u8bfb\u5199\u63a5\u53e3\u3002<\/section>\n<\/li>\n<\/ul>\n<h2 style=\"padding: 1px 12.5px; color: #ffffff; margin: 1.2em 0px 1em; border-radius: 4px; display: inline-block; background-color: #4870ac; font-size: 1.3em;\">\u56db\u3001\u521b\u5efa\u5bf9\u8c61\u3001\u8c03\u65b9\u6cd5\u3001\u53d6\u5b57\u6bb5<\/h2>\n<p style=\"margin: 1em 0px;\">\u7528 Class \u521b\u5efa\u5b9e\u4f8b\uff08\u65e0\u53c2\u6784\u9020\uff09\uff1a<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">Class c= Class.forName(\"\u7c7b\u7684\u5168\u540d\");\n\n\n\nObject o=c.newInstance();\n\n\n\nTest1 t = Test1.class.newInstance();<\/code><\/pre>\n<p style=\"margin: 1em 0px;\">\u67e5\u8fd9\u4e2a\u7c7b\u5c5e\u4e8e\u54ea\u4e2a\u5305\uff1a<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">Class c=Test1.class;\n\n\n\nPackage p;\n\n\n\np=c.getPackage();<\/code><\/pre>\n<p style=\"margin: 1em 0px;\">\u6309\u53c2\u6570\u7c7b\u578b\u62ff\u5230\u65b9\u6cd5\u518d <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">invoke<\/code>\u3002\u5148 <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">newInstance<\/code> \u5f97\u5230\u88ab\u8bbf\u95ee\u5bf9\u8c61\uff0c\u518d\u51c6\u5907\u53c2\u6570\u7c7b\u578b\u6570\u7ec4\u548c\u5b9e\u53c2\u6570\u7ec4\uff1a<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">Class c = Class.forName(\u201c\u7c7b\u7684\u5168\u540d\u201d);\/\/\u83b7\u5f97\u8bbf\u95ee\u7c7b\u7684\u5bf9\u8c61\n\n\n\nObject obj=c.newInstance();\/\/\u83b7\u5f97\u88ab\u8bbf\u95ee\u7c7b\u7684\u5b9e\u4f8b\u5bf9\u8c61\n\n\n\nClass[] cs=new Class[]{String.class};\/\/\u8bbe\u7f6e\u53c2\u6570\u7c7b\u578b\n\n\n\nMethod ff=c.getMethod(\u201csetName\u201d,cs);\/\/\u5f97\u5230\u53c2\u6570\u5339\u914d\u7684\u65b9\u6cd5\n\n\n\nObject[] values=new Object[]{\u201c\u4f60\u597d\u201d};\/\/\u8bbe\u7f6e\u9700\u8981\u4f20\u9012\u7684\u503c ff.invoke(obj,values);\/\/\u6620\u5c04\n\n\n\nff=c.getMethod(\"getName\");\n\n\n\nObject uuu= ff.invoke(obj);<\/code><\/pre>\n<p style=\"margin: 1em 0px;\">\u52a8\u6001\u8c03\u7528\u5e26\u53c2\u9759\u6001\u65b9\u6cd5\u65f6\uff0c<code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">invoke<\/code> \u7684\u7b2c\u4e00\u4e2a\u5b9e\u53c2\u53ef\u4ee5\u662f Class \u672c\u8eab\uff08\u9759\u6001\u65b9\u6cd5\u4e0d\u7ed1\u5b9e\u4f8b\uff09\uff1a<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">Class c = Class.forName(\"\u7c7b\u7684\u5168\u540d\");\n\n\n\nClass[] cs=new Class[]{String.class};\n\n\n\nMethod m=c.getMethod(\"setName\",cs);\n\n\n\nObject[] o=new Object[]{\"aaa\"};\n\n\n\nm.invoke(c,o);<\/code><\/pre>\n<p style=\"margin: 1em 0px;\">\u4e00\u6b21\u62ff\u51fa\u5168\u90e8\u5c5e\u6027\u3001\u6784\u9020\u5668\u548c\u51fd\u6570\uff08\u542b\u79c1\u6709\u3001\u9759\u6001\uff09\uff1a<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">Field[] ff = c.getDeclaredFields(); \/\/\u65e0\u8bba\u9759\u6001\u8fd8\u5b9e\u4f53\u8fd8\u79c1\u6709\u7686\u53ef\u5f97\u5230\u5c5e\u6027\n\n\n\nConstructor[] ccc= c.getDeclaredConstructors(); \/\/\u5f97\u5230\u6784\u9020\n\n\n\nMethod[] mm=c.getDeclaredMethods();\/\/\u65e0\u8bba\u9759\u6001\u8fd8\u5b9e\u4f53\u8fd8\u79c1\u6709\u7686\u53ef\u5f97\u5230\u51fd\u6570<\/code><\/pre>\n<p style=\"margin: 1em 0px;\">\u6309\u53c2\u6570\u7c7b\u578b\u62ff\u5230\u6784\u9020\u5668\u518d <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">newInstance<\/code>\uff1a<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">Class c = Class.forName(\u201c\u7c7b\u7684\u5168\u540d\");\n\n\n\nClass[] cs=new Class[]{String.class};\n\n\n\nConstructor cc= c.getConstructor(cs);\n\n\n\nObject[] o=new Object[]{\"ssssssssssssss\"};\n\n\n\ncc.newInstance(o);<\/code><\/pre>\n<p style=\"margin: 1em 0px;\"><code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">getMethods()<\/code> \u542b\u7236\u7c7b\u6210\u5458\u65b9\u6cd5\uff1b<code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">getDeclaredMethods()<\/code> \/ <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">getDeclaredFields()<\/code> \u53ea\u770b\u672c\u7c7b\u58f0\u660e\uff1a<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">Method[] methods = classObj1.getMethods(); \/\/\u83b7\u53d6\u6240\u6709\u6210\u5458\u65b9\u6cd5\u5305\u542b \u7236\u7c7b\u6210\u5458\u65b9\u6cd5\n\nMethod[] methods = calze.getDeclaredMethods(); \/\/\u83b7\u53d6\u7c7b\u91cc\u6240\u6709\u6210\u5458\u65b9\u6cd5\n\nField[] fields = claze.getDeclaredFields();\/\/\u5f97\u5230\u6240\u6709\u5c5e\u6027\n\nConstructor[] constructors = claze.getConstructors();\/\/\u5f97\u5230\u6240\u6709\u6784\u9020\u65b9\u6cd5<\/code><\/pre>\n<h2 style=\"padding: 1px 12.5px; color: #ffffff; margin: 1.2em 0px 1em; border-radius: 4px; display: inline-block; background-color: #4870ac; font-size: 1.3em;\">\u4e94\u3001\u53cd\u5c04\u7684\u4f18\u7f3a\u70b9<\/h2>\n<p style=\"margin: 1em 0px;\"><strong style=\"color: #4870ac;\">\u4f18\u70b9<\/strong>\uff1a\u63d0\u9ad8\u7075\u6d3b\u6027\u548c\u6269\u5c55\u6027\uff0c\u964d\u4f4e\u8026\u5408\uff0c\u7a0b\u5e8f\u4e0d\u5fc5\u63d0\u524d\u5199\u6b7b\u76ee\u6807\u7c7b\uff0c\u5c31\u80fd\u521b\u5efa\u548c\u63a7\u5236\u4efb\u610f\u7c7b\u7684\u5bf9\u8c61\u3002<\/p>\n<p style=\"margin: 1em 0px;\"><strong style=\"color: #4870ac;\">\u7f3a\u70b9<\/strong>\uff1a\uff081\uff09\u6027\u80fd\u2014\u2014\u53cd\u5c04\u672c\u8d28\u662f\u89e3\u91ca\u6267\u884c\uff0c\u5b57\u6bb5\u548c\u65b9\u6cd5\u8bbf\u95ee\u8fdc\u6162\u4e8e\u76f4\u63a5\u4ee3\u7801\uff0c\u9002\u5408\u6846\u67b6\uff0c\u666e\u901a\u4e1a\u52a1\u4e0d\u5efa\u8bae\u94fa\u5f00\u3002\uff082\uff09\u53ef\u8bfb\u6027\u2014\u2014\u7ed5\u8fc7\u6e90\u7801\u76f4\u63a5\u6539\u7ed3\u6784\uff0c\u5185\u90e8\u903b\u8f91\u53d8\u7cca\uff0c\u7ef4\u62a4\u6210\u672c\u9ad8\uff0c\u4ee3\u7801\u4e5f\u66f4\u7ed5\u3002<\/p>\n<h2 style=\"padding: 1px 12.5px; color: #ffffff; margin: 1.2em 0px 1em; border-radius: 4px; display: inline-block; background-color: #4870ac; font-size: 1.3em;\">\u516d\u3001\u7528\u53cd\u5c04\u5b9e\u73b0\u5de5\u5382\u6a21\u5f0f<\/h2>\n<p style=\"margin: 1em 0px;\">\u5de5\u5382\u6309\u7c7b\u7684\u5168\u540d <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">Class.forName<\/code> \u518d <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">newInstance<\/code>\uff0c\u8c03\u7528\u65b9\u53ea\u4f9d\u8d56\u63a5\u53e3 <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">Fruit<\/code>\uff0c\u65b0\u589e\u82f9\u679c\/\u6a58\u5b50\u4e0d\u5fc5\u6539\u5de5\u5382\u5206\u652f\uff1a<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">package com.scxh.java.factory;\n\ninterface Fruit { \/\/\u6c34\u679c\u63a5\u53e3\n\n    public void eat() \/\/\u5403\u6c34\u679c\n\n}\n\nclass Apple implements Fruit{ \/\/\u5b9a\u4e49\u82f9\u679c\n\n    public void eat() {\n\n       System.out.println(\"**\u5403\u82f9\u679c\u3002\");\n\n    }\n\n}\n\nclass Orange implements Fruit{\n\n    public void eat() {\n\n        System.out.println(\"**\u5403\u6a58\u5b50\u3002\");\n\n    }\n\n}\n\nclass Factory{\n\n   public static Fruit getInstance(String className){\n\n      Fruit fruit = null\n\n      try{\n\n         fruit = (Fruit) Class.forName(className).newInstance()\n\n      }catch(Exception e ){\n\n         e.printStackTrace()\n\n       }\n\n      return fruit\n\n   }\n\n}\n\npublic class FactoryDemo{\n\n   public static void main(String args[]){ \/\/\u901a\u8fc7\u5de5\u5382\u7c7b\u53d6\u5f97\u63a5\u53e3\u5b9e\u4f8b\uff0c\u4f20\u5165\u5b8c\u6574\u7684\u5305.\u7c7b\u540d\u79f0\n\n      Fruit f = Factory.getInstance(\"com.scxh.java.factorydemo.Apple\")\n\n         if(f!=null){ \/\/\u5224\u65ad\u662f\u5426\u53d6\u5f97\u63a5\u53e3\u5b9e\u4f8b\n\n            f.eat()\n\n         }\n\n      }\n\n}<\/code><\/pre>\n<h2 style=\"padding: 1px 12.5px; color: #ffffff; margin: 1.2em 0px 1em; border-radius: 4px; display: inline-block; background-color: #4870ac; font-size: 1.3em;\">\u4e03\u3001\u53cd\u5c04\u5de5\u5177\u7c7b\uff1a\u6253\u5370\u6307\u5b9a\u7c7b\u7684\u6210\u5458<\/h2>\n<p style=\"margin: 1em 0px;\">\u4e0b\u9762\u5de5\u5177\u4e00\u6b21\u6027\u6253\u5370\u6307\u5b9a\u7c7b\u7684\u5c5e\u6027\u3001\u6784\u9020\u65b9\u6cd5\u548c\u6210\u5458\u65b9\u6cd5\uff08\u793a\u4f8b\u8f93\u51fa\u89c1\u65b9\u6cd5\u6ce8\u91ca\uff09\u3002\u4f5c\u8005\u6807\u8bc6\u6cbf\u7528\u539f\u6587 <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">zhou.sir<\/code>\u3002<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">\/**\n\n* \u53cd\u5c04\u673a\u5236\u5b9e\u73b0\uff1a \u6253\u5370\u6307\u5b9a\u7c7b\u7684\u5c5e\u6027\u3001\u65b9\u6cd5\uff0c\u6784\u9020\u65b9\u6cd5\n\n*\n\n*\n\n* @author zhou.sir\n\n*\n\n*\/\n\n\n\npublic class ReflectUtil {\n\n\/**\n\n\n\n\u8f93\u51fa\u7ed3\u679c:\n\nString name\n\nint age\n\nint id\n\nString sex\n\nStudent()\n\nStudent(String int int String )\n\nString toString()\n\nvoid playeGame()\n\nvoid makeFriend()\n\nvoid learn()\n\n\n\n*\/\n\npublic static void main(String[] args) throws ClassNotFoundException {\n\nshowDeclaredParameter(getClaze());\n\nshowConstruction(getClaze());\n\nshowDeclaredMethods(getClaze());\n\n}\n\n\/**\n\n* \u83b7\u53d6\u7c7b\u5bf9\u8c61\n\n* @throws ClassNotFoundException\n\n*\/\n\npublic static Class&lt;?&gt; getClaze() throws ClassNotFoundException{\n\nClass&lt;?&gt; classObj1 = Student.class;\n\n\/\/ Class classObj2 = new Dog().getClass();\n\n\/\/ Class classObj3 = Class.forName(\"com.scxh.java1601.object.ex01.test.Student\");\n\n\n\n\/\/ Log.d(classObj1.getName());\n\n\n\nreturn classObj1;\n\n}\n\n\n\n\/**\n\n* \u663e\u793a\u6210\u5458\u65b9\u6cd5\u5934\n\n* @param calze\n\n*\/\n\npublic static void showDeclaredMethods(Class calze){\n\n\/\/ Method[] methods = classObj1.getMethods(); \/\/\u83b7\u53d6\u6240\u6709\u6210\u5458\u65b9\u6cd5\u5305\u542b \u7236\u7c7b\u6210\u5458\u65b9\u6cd5\n\nMethod[] methods = calze.getDeclaredMethods(); \/\/\u83b7\u53d6\u7c7b\u91cc\u6240\u6709\u6210\u5458\u65b9\u6cd5\n\nfor (int i = 0, n = methods.length; i &lt; n; i++) {\n\nString methodName = methods[i].getName();\n\nClass returnType = methods[i].getReturnType();\n\nClass[] parameterType = methods[i].getParameterTypes();\n\n\n\nLog.v(subString(returnType.getName()) + \" \" + methodName + \"(\");\n\nfor (Class p : parameterType) {\n\nLog.v(subString(p.getName()) + \" \");\n\n}\n\nLog.d(\")\");\n\n}\n\n}\n\n\n\npublic static void showDeclaredParameter(Class claze){\n\nField[] fields = claze.getDeclaredFields();\/\/\u5f97\u5230\u6240\u6709\u5c5e\u6027\n\nfor(Field f : fields){\n\nString fieldName = f.getName();\n\nClass parameterType = f.getType();\n\n\n\nString ptName = subString(parameterType.getName());\n\nLog.d(ptName+ \"\\t\"+fieldName);\n\n}\n\n}\n\n\n\npublic static void showConstruction(Class claze){\n\nConstructor[] constructors = claze.getConstructors();\/\/\u5f97\u5230\u6240\u6709\u6784\u9020\u65b9\u6cd5\n\nfor(Constructor c : constructors){\n\nString constructorName = c.getName();\n\n\n\nClass[] parameterType = c.getParameterTypes();\n\nLog.v(subString(constructorName) + \"(\");\n\nfor (Class p : parameterType) {\n\nLog.v(subString(p.getName()) + \" \");\n\n}\n\nLog.d(\")\");\n\n}\n\n}\n\n\n\npublic static String subString(String str){\n\nString ptName = str;\n\nif(ptName.contains(\".\")){\n\nint lastIndex = ptName.lastIndexOf(\".\");\n\nptName = ptName.substring(lastIndex+1);\n\n}\n\nreturn ptName;\n\n}\n\n\n\n}<\/code><\/pre>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\">\n<p style=\"margin: 1em 0px;\"><strong style=\"color: #4870ac;\">\u4e00\u53e5\u8bdd\u603b\u7ed3\uff1a\u53cd\u5c04\u5c31\u662f\u8fd0\u884c\u65f6\u7684 Class \u5bf9\u8c61\uff1a\u7528\u5b83\u521b\u5efa\u5b9e\u4f8b\u3001\u8c03\u65b9\u6cd5\u3001\u8bfb\u5b57\u6bb5\uff1b\u7075\u6d3b\uff0c\u4f46\u6162\uff0c\u4e5f\u66f4\u96be\u7ef4\u62a4\u3002<\/strong><\/p>\n<\/blockquote>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>Java \u53cd\u5c04\u6307\uff1a\u8fd0\u884c\u65f6\u5bf9\u4efb\u610f\u7c7b\u90fd\u80fd\u67e5\u51fa\u5168\u90e8\u5c5e\u6027\u548c\u65b9\u6cd5\uff0c\u5bf9\u4efb\u610f\u5bf9\u8c61\u90fd\u80fd\u8c03\u7528\u4efb\u610f\u65b9\u6cd5\u548c\u5c5e\u6027\u3002\u52a8\u6001\u62ff\u5230\u8fd9\u4e9b\u4fe1\u606f\u3001\u52a8 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[17],"tags":[43,35],"_links":{"self":[{"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/posts\/103"}],"collection":[{"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=103"}],"version-history":[{"count":3,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/posts\/103\/revisions"}],"predecessor-version":[{"id":2051,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/posts\/103\/revisions\/2051"}],"wp:attachment":[{"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=103"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=103"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=103"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}