{"id":96,"date":"2019-05-17T07:45:11","date_gmt":"2019-05-16T23:45:11","guid":{"rendered":"https:\/\/thereisno.top:4430\/?p=96"},"modified":"2024-10-22T15:52:36","modified_gmt":"2024-10-22T07:52:36","slug":"java-%e6%b3%a8%e8%a7%a3","status":"publish","type":"post","link":"https:\/\/thereisno.top\/?p=96","title":{"rendered":"Java \u6ce8\u89e3"},"content":{"rendered":"\n<p>\u4e00\u3001\u4ec0\u4e48\u662f\u6ce8\u91ca<\/p>\n\n\n\n<p>\u8bf4\u8d77\u6ce8\u91ca\uff0c\u5f97\u5148\u63d0\u4e00\u63d0\u4ec0\u4e48\u662f\u5143\u6570\u636e(metadata)\u3002\u6240\u8c13\u5143\u6570\u636e\u5c31\u662f\u6570\u636e\u7684\u6570\u636e\u3002\u4e5f\u5c31\u662f\u8bf4\uff0c\u5143\u6570\u636e\u662f\u63cf\u8ff0\u6570\u636e\u7684\u3002\u5c31\u8c61\u6570\u636e\u8868\u4e2d\u7684\u5b57\u6bb5\u4e00\u6837\uff0c\u6bcf\u4e2a\u5b57\u6bb5\u63cf\u8ff0\u4e86\u8fd9\u4e2a\u5b57\u6bb5\u4e0b\u7684\u6570\u636e\u7684\u542b\u4e49\u3002\u800cJ2SE5.0\u4e2d\u63d0\u4f9b\u7684\u6ce8\u91ca\u5c31\u662fjava\u6e90\u4ee3\u7801\u7684\u5143\u6570\u636e\uff0c\u4e5f\u5c31\u662f\u8bf4\u6ce8\u91ca\u662f\u63cf\u8ff0java\u6e90\u4ee3\u7801\u7684\u3002\u5728J2SE5.0\u4e2d\u53ef\u4ee5\u81ea\u5b9a\u4e49\u6ce8\u91ca\u3002\u4f7f\u7528\u65f6\u5728@\u540e\u9762\u8ddf\u6ce8\u91ca\u7684\u540d\u5b57\u3002<\/p>\n\n\n\n<p>\u4e8c\u3001J2SE5.0\u4e2d\u9884\u5b9a\u4e49\u7684\u6ce8\u91ca<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>\u5728J2SE5.0\u7684java.lang\u5305\u4e2d\u9884\u5b9a\u4e49\u4e86\u4e09\u4e2a\u6ce8\u91ca\u3002\u5b83\u4eec\u662fOverride\u3001Deprecated\u548cSuppressWarnings\u3002\u4e0b\u9762\u5206\u522b\u89e3\u91ca\u5b83\u4eec\u7684\u542b\u4e49\u3002<\/p>\n\n\n\n<p>1.Override\u6ce8\u91ca\uff1a\u4ec5\u7528\u4e8e\u65b9\u6cd5\uff08\u4e0d\u53ef\u7528\u4e8e\u7c7b\u3001\u5305\u7684\u751f\u547d\u6216\u5176\u4ed6\uff09\uff0c\u6307\u660e\u6ce8\u91ca\u7684\u65b9\u6cd5\u5c06\u8986\u76d6\u8d85\u7c7b\u4e2d\u7684\u65b9\u6cd5\uff08\u5982\u679c\u8986\u76d6\u7236\u7c7b\u7684\u65b9\u6cd5\u800c\u6ca1\u6709\u6ce8<\/p>\n\n\n\n<p>\u91ca\u5c31\u65e0\u6cd5\u7f16\u8bd1\u8be5\u7c7b\uff09\uff0c\u6ce8\u91ca\u8fd8\u80fd\u786e\u4fdd\u6ce8\u91ca\u7236\u7c7b\u65b9\u6cd5\u7684\u62fc\u5199\u662f\u6b63\u786e\uff08\u9519\u8bef\u7684\u7f16\u5199\uff0c\u7f16\u8bd1\u5668\u4e0d\u8ba4\u4e3a\u662f\u5b50\u7c7b\u7684\u65b0\u65b9\u6cd5\uff0c\u800c\u4f1a\u62a5\u9519\uff09<\/p>\n\n\n\n<p>2.@Deprecated\u6ce8\u91ca\uff1a\u5bf9\u4e0d\u5e94\u518d\u4f7f\u7528\u7684\u65b9\u6cd5\u8fdb\u884c\u6ce8\u91ca\uff0c\u4e0e\u6b63\u5728\u58f0\u660e\u4e3a\u8fc7\u65f6\u7684\u65b9\u6cd5\u653e\u5728\u540c\u4e00\u884c\u3002\u4f7f\u7528\u88ab Deprecated\u6ce8\u91ca\u7684\u65b9\u6cd5\uff0c\u7f16\u8bd1\u5668\u4f1a<\/p>\n\n\n\n<p>\u63d0\u793a\u65b9\u6cd5\u8fc7\u65f6\u8b66\u544a\uff08\u201dWarring\u201d\uff09<\/p>\n\n\n\n<p>3.@SuppressWarnings\u6ce8\u91ca\uff1a\u5355\u4e00\u6ce8\u91ca\uff0c\u53ef\u4ee5\u901a\u8fc7\u6570\u7ec4\u63d0\u4f9b\u53d8\u91cf\uff0c\u53d8\u91cf\u503c\u6307\u660e\u8981\u963b\u6b62\u7684\u7279\u5b9a\u7c7b\u578b\u8b66\u544a\uff08\u5ffd\u7565\u67d0\u4e9b\u8b66\u544a\uff09\u3002\u6570\u7ec4\u4e2d\u7684\u53d8\u91cf\u6307\u660e\u8981\u963b\u6b62\u7684\u8b66\u544a@SuppressWarnings(value={\u201dunchecked\u201d,\u201dfallthrough\u201d})\uff09<\/p>\n\n\n\n<p>\u4e09\u3001\u81ea\u5b9a\u4e49\u6ce8\u91ca@interface<\/p>\n\n\n\n<p>@interface\uff1a\u6ce8\u91ca\u58f0\u660e\uff0c\u5b9a\u4e49\u6ce8\u91ca\u7c7b\u578b\uff08\u4e0e\u9ed8\u8ba4\u7684Override\u7b49\u4e09\u79cd\u6ce8\u91ca\u7c7b\u578b\u7c7b\u4f3c)\u3002\u8bf7\u770b\u4e0b\u9762\u5b9e\u4f8b\uff1a<\/p>\n\n\n\n<p>\u6ce8\u91ca\u7c7b1\uff1a<\/p>\n\n\n\n<p>package a.test;<\/p>\n\n\n\n<p>import java.lang.annotation.Documented;<\/p>\n\n\n\n<p>import java.lang.annotation.ElementType;<\/p>\n\n\n\n<p>import java.lang.annotation.Retention;<\/p>\n\n\n\n<p>import java.lang.annotation.RetentionPolicy;<\/p>\n\n\n\n<p>import java.lang.annotation.Target;<\/p>\n\n\n\n<p>@Documented<\/p>\n\n\n\n<p>@Retention(RetentionPolicy.RUNTIME)<\/p>\n\n\n\n<p>@Target(ElementType.TYPE)<\/p>\n\n\n\n<p>public @interface FirstAnno {<\/p>\n\n\n\n<p>String value() default &#8220;FirstAnno&#8221;;<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>\u6ce8\u91ca\u7c7b2\uff1a<\/p>\n\n\n\n<p>package a.test;<\/p>\n\n\n\n<p>import java.lang.annotation.Documented;<\/p>\n\n\n\n<p>import java.lang.annotation.ElementType;<\/p>\n\n\n\n<p>import java.lang.annotation.Retention;<\/p>\n\n\n\n<p>import java.lang.annotation.RetentionPolicy;<\/p>\n\n\n\n<p>import java.lang.annotation.Target;<\/p>\n\n\n\n<p>@Documented<\/p>\n\n\n\n<p>@Retention(RetentionPolicy.RUNTIME)<\/p>\n\n\n\n<p>@Target(ElementType.METHOD)<\/p>\n\n\n\n<p>public @interface SecondAnnotation {<\/p>\n\n\n\n<p>\/\/ \u6ce8\u91ca\u4e2d\u542b\u6709\u4e24\u4e2a\u53c2\u6570<\/p>\n\n\n\n<p>String name() default &#8220;Hrmzone&#8221;;<\/p>\n\n\n\n<p>String url() default &#8220;hrmzone.cn&#8221;;<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>\u6ce8\u91ca\u7c7b3\uff1a<\/p>\n\n\n\n<p>package a.test;<\/p>\n\n\n\n<p>import java.lang.annotation.Documented;<\/p>\n\n\n\n<p>import java.lang.annotation.ElementType;<\/p>\n\n\n\n<p>import java.lang.annotation.Retention;<\/p>\n\n\n\n<p>import java.lang.annotation.RetentionPolicy;<\/p>\n\n\n\n<p>import java.lang.annotation.Target;<\/p>\n\n\n\n<p>@Documented<\/p>\n\n\n\n<p>@Retention(RetentionPolicy.RUNTIME)<\/p>\n\n\n\n<p>@Target(ElementType.FIELD)<\/p>\n\n\n\n<p>public @interface Kitto {<\/p>\n\n\n\n<p>String value() default &#8220;kitto&#8221;;<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>\u4f7f\u7528\u7c7b\uff1a<\/p>\n\n\n\n<p>package a.test;<\/p>\n\n\n\n<p>@FirstAnno(&#8220;http:\/\/hrmzone.cn&#8221;)<\/p>\n\n\n\n<p>public class Anno {<\/p>\n\n\n\n<p>@Kitto(&#8220;\u6d4b\u8bd5&#8221;)<\/p>\n\n\n\n<p>private String test = &#8220;&#8221;;<\/p>\n\n\n\n<p>\/\/ \u4e0d\u8d4b\u503c\u6ce8\u91ca\u4e2d\u7684\u53c2\u6570\uff0c\u4f7f\u7528\u9ed8\u8ba4\u53c2\u6570<\/p>\n\n\n\n<p>@SecondAnnotation()<\/p>\n\n\n\n<p>public String getDefault() {<\/p>\n\n\n\n<p>return &#8220;get default Annotation&#8221;;<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>@SecondAnnotation(name=&#8221;desktophrm&#8221;,url=&#8221;desktophrm.com&#8221;)<\/p>\n\n\n\n<p>public String getDefine() {<\/p>\n\n\n\n<p>return &#8220;get define Annotation&#8221;;<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>\u6d4b\u8bd5\u7c7b\uff1a<\/p>\n\n\n\n<p>package a.test;<\/p>\n\n\n\n<p>import java.lang.reflect.Field;<\/p>\n\n\n\n<p>import java.lang.reflect.Method;<\/p>\n\n\n\n<p>import java.util.ArrayList;<\/p>\n\n\n\n<p>import java.util.List;<\/p>\n\n\n\n<p>public class AnnoTest {<\/p>\n\n\n\n<p>public static void main(String[] args) throws ClassNotFoundException {<\/p>\n\n\n\n<p>\/\/ \u8981\u4f7f\u7528\u5230\u53cd\u5c04\u4e2d\u7684\u76f8\u5173\u5185\u5bb9<\/p>\n\n\n\n<p>Class c = Class.forName(&#8220;a.test.Anno&#8221;);<\/p>\n\n\n\n<p>Method[] method = c.getMethods();<\/p>\n\n\n\n<p>boolean flag = c.isAnnotationPresent(FirstAnno.class);<\/p>\n\n\n\n<p>if (flag) {<\/p>\n\n\n\n<p>FirstAnno first = (FirstAnno) c.getAnnotation(FirstAnno.class);<\/p>\n\n\n\n<p>System.out.println(&#8220;First Annotation:&#8221; + first.value() + &#8220;\\n&#8221;);<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>List&lt;Method&gt; list = new ArrayList&lt;Method&gt;();<\/p>\n\n\n\n<p>for (int i = 0; i &lt; method.length; i++) {<\/p>\n\n\n\n<p>list.add(method[i]);<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>for (Method m : list) {<\/p>\n\n\n\n<p>SecondAnnotation anno = m.getAnnotation(SecondAnnotation.class);<\/p>\n\n\n\n<p>if(anno == null)<\/p>\n\n\n\n<p>continue;<\/p>\n\n\n\n<p>System.out.println(&#8220;second annotation&#8217;s\\nname:\\t&#8221; + anno.name()<\/p>\n\n\n\n<p>+ &#8220;\\nurl:\\t&#8221; + anno.url());<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>List&lt;Field&gt; fieldList = new ArrayList&lt;Field&gt;();<\/p>\n\n\n\n<p>for(Field f : c.getDeclaredFields()){\/\/\u8bbf\u95ee\u6240\u6709\u5b57\u6bb5<\/p>\n\n\n\n<p>Kitto k = f.getAnnotation(Kitto.class);<\/p>\n\n\n\n<p>System.out.println(&#8220;&#8212;-kitto anno: &#8221; + k.value());<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>\u7ed3\u5408\u6e90\u6587\u4ef6\u4e2d\u6ce8\u91ca\uff0c\u60f3\u5fc5\u5bf9\u6ce8\u91ca\u7684\u5e94\u7528\u6709\u6240\u4e86\u89e3\u3002\u4e0b\u9762\u6df1\u5165\u4e86\u89e3\u3002<\/p>\n\n\n\n<p>\u6df1\u5165\u6ce8\u91ca\uff1a<\/p>\n\n\n\n<p>@Target:\u6307\u5b9a\u7a0b\u5e8f\u5143\u5b9a\u4e49\u7684\u6ce8\u91ca\u6240\u4f7f\u7528\u7684\u5730\u65b9\uff0c\u5b83\u4f7f\u7528\u4e86\u53e6\u4e00\u4e2a\u7c7b\uff1aElementType\uff0c\u662f\u4e00\u4e2a\u679a\u4e3e\u7c7b\u5b9a\u4e49\u4e86\u6ce8\u91ca\u7c7b\u578b\u53ef\u4ee5\u5e94\u7528\u5230\u4e0d\u540c\u7684\u7a0b\u5e8f\u5143\u7d20\u4ee5\u514d\u4f7f\u7528\u8005\u8bef\u7528\u3002\u770b\u770bjava.lang.annotation \u4e0b\u7684\u6e90\u4ee3\u7801\uff1a<\/p>\n\n\n\n<p>@Documented<\/p>\n\n\n\n<p>@Retention(RetentionPolicy.RUNTIME)<\/p>\n\n\n\n<p>@Target(ElementType.ANNOTATION_TYPE)<\/p>\n\n\n\n<p>public @interface Target {<\/p>\n\n\n\n<p>ElementType[] value();<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>ElementType\u662f\u4e00\u4e2a\u679a\u4e3e\u7c7b\u578b\uff0c\u6307\u660e\u6ce8\u91ca\u53ef\u4ee5\u4f7f\u7528\u7684\u5730\u65b9\uff0c\u770b\u770bElementType\u7c7b\uff1a<\/p>\n\n\n\n<p>public enum ElementType {<\/p>\n\n\n\n<p>TYPE, \/\/ \u6307\u5b9a\u9002\u7528\u70b9\u4e3a class, interface, enum<\/p>\n\n\n\n<p>FIELD, \/\/ \u6307\u5b9a\u9002\u7528\u70b9\u4e3a field<\/p>\n\n\n\n<p>METHOD, \/\/ \u6307\u5b9a\u9002\u7528\u70b9\u4e3a method<\/p>\n\n\n\n<p>PARAMETER, \/\/ \u6307\u5b9a\u9002\u7528\u70b9\u4e3a method \u7684 parameter<\/p>\n\n\n\n<p>CONSTRUCTOR, \/\/ \u6307\u5b9a\u9002\u7528\u70b9\u4e3a constructor<\/p>\n\n\n\n<p>LOCAL_VARIABLE, \/\/ \u6307\u5b9a\u4f7f\u7528\u70b9\u4e3a \u5c40\u90e8\u53d8\u91cf<\/p>\n\n\n\n<p>ANNOTATION_TYPE, \/\/\u6307\u5b9a\u9002\u7528\u70b9\u4e3a annotation \u7c7b\u578b<\/p>\n\n\n\n<p>PACKAGE \/\/ \u6307\u5b9a\u9002\u7528\u70b9\u4e3a package<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>@Retention\uff1a\u8fd9\u4e2a\u5143\u6ce8\u91ca\u548cjava\u7f16\u8bd1\u5668\u5904\u7406\u6ce8\u91ca\u7684\u6ce8\u91ca\u7c7b\u578b\u65b9\u5f0f\u76f8\u5173\uff0c\u544a\u8bc9\u7f16\u8bd1\u5668\u5728\u5904\u7406\u81ea\u5b9a\u4e49\u6ce8\u91ca\u7c7b\u578b\u7684\u51e0\u79cd\u4e0d\u540c\u7684\u9009\u62e9\uff0c\u9700\u8981\u4f7f\u7528RetentionPolicy\u679a\u4e3e\u7c7b\u3002\u6b64\u679a\u4e3e\u7c7b\u53ea\u6709\u4e00\u4e2a\u6210\u5458\u53d8\u91cf\uff0c\u53ef\u4ee5\u4e0d\u7528\u6307\u660e\u6210\u540d\u540d\u79f0\u800c\u8d4b\u503c\uff0c\u770bRetention\u7684\u6e90\u4ee3\u7801\uff1a<\/p>\n\n\n\n<p>@Documented<\/p>\n\n\n\n<p>@Retention(RetentionPolicy.RUNTIME)<\/p>\n\n\n\n<p>@Target(ElementType.ANNOTATION_TYPE)<\/p>\n\n\n\n<p>public @interface Retention {<\/p>\n\n\n\n<p>RetentionPolicy value();<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>\u7c7b\u4e2d\u6709\u4e2aRetentionPolicy\u7c7b\uff0c\u4e5f\u662f\u4e00\u4e2a\u679a\u4e3e\u7c7b\uff0c\u5177\u4f53\u770b\u4ee3\u7801\uff1a<\/p>\n\n\n\n<p>public enum RetentionPolicy {<\/p>\n\n\n\n<p>SOURCE, \/\/ \u7f16\u8bd1\u5668\u5904\u7406\u5b8cAnnotation\u540e\u4e0d\u5b58\u50a8\u5728class\u4e2d<\/p>\n\n\n\n<p>CLASS, \/\/ \u7f16\u8bd1\u5668\u628aAnnotation\u5b58\u50a8\u5728class\u4e2d\uff0c\u8fd9\u662f\u9ed8\u8ba4\u503c<\/p>\n\n\n\n<p>RUNTIME \/\/ \u7f16\u8bd1\u5668\u628aAnnotation\u5b58\u50a8\u5728class\u4e2d\uff0c\u53ef\u4ee5\u7531\u865a\u62df\u673a\u8bfb\u53d6,\u53cd\u5c04\u9700\u8981<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>@Documented\uff1a\u662f\u4e00\u4e2a\u6807\u8bb0\u6ce8\u91ca\uff0c\u8868\u793a\u6ce8\u91ca\u5e94\u8be5\u51fa\u73b0\u5728\u7c7b\u7684javadoc\u4e2d\uff0c\u56e0\u4e3a\u5728\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u6ce8\u91ca\u65f6\u4e0d\u5305\u62ec\u5728javadoc\u4e2d\u7684\u3002<\/p>\n\n\n\n<p>\u6240\u4ee5\u5982\u679c\u82b1\u8d39\u4e86\u5927\u91cf\u7684\u65f6\u95f4\u5b9a\u4e49\u4e00\u4e2a\u6ce8\u91ca\u7c7b\u578b\uff0c\u5e76\u60f3\u63cf\u8ff0\u6ce8\u91ca\u7c7b\u578b\u7684\u4f5c\u7528\uff0c\u53ef\u4ee5\u4f7f\u7528\u5b83\u3002<\/p>\n\n\n\n<p>\u6ce8\u610f\u4ed6\u4e0e@Retention(RetentionPolicy.RUNTIME)\u914d\u5408\u4f7f\u7528\uff0c\u56e0\u4e3a\u53ea\u6709\u5c06\u6ce8\u91ca\u4fdd\u7559\u5728\u7f16\u8bd1\u540e\u7684\u7c7b\u6587\u4ef6\u4e2d\u7531\u865a\u62df\u673a\u52a0\u8f7d\uff0c<\/p>\n\n\n\n<p>\u7136\u540ejavadoc\u624d\u80fd\u5c06\u5176\u62bd\u53d6\u51fa\u6765\u6dfb\u52a0\u81f3javadoc\u4e2d\u3002<\/p>\n\n\n\n<p>@Inherited\uff1a\u5c06\u6ce8\u91ca\u540c\u6837\u7ee7\u627f\u81f3\u4f7f\u7528\u4e86\u8be5\u6ce8\u91ca\u7c7b\u578b\u7684\u65b9\u6cd5\u4e2d\uff08\u8868\u8fbe\u6709\u70b9\u95ee\u9898\uff0c\u5c31\u662f\u5982\u679c\u4e00\u4e2a\u65b9\u6cd5\u4f7f\u7528\u4e86\u7684\u6ce8\u91ca\u7528\u4e86@inherited\uff0c<\/p>\n\n\n\n<p>\u90a3\u4e48\u5176\u5b50\u7c7b\u7684\u8be5\u65b9\u6cd5\u540c\u6837\u7ee7\u627f\u4e86\u8be5\u6ce8\u91ca\uff09<\/p>\n\n\n\n<p>\u6ce8\u610f\u4e8b\u9879\uff1a<\/p>\n\n\n\n<p>1.\u6240\u6709\u7684Annotation\u81ea\u52a8\u7ee7\u627fjava.lang.annotation\u63a5\u53e3<\/p>\n\n\n\n<p>2.\u81ea\u5b9a\u4e49\u6ce8\u91ca\u7684\u6210\u5458\u53d8\u91cf\u8bbf\u95ee\u7c7b\u578b\u53ea\u80fd\u662fpublic\u3001default\uff1b(\u6240\u6709\u7684\u90fd\u80fd\u8bbf\u95ee\uff0c\u6e90\u4f5c\u8005\u6ca1\u7528\u5230\u51fd\u6570\uff1agetDeclaredFields\u800c\u5df2)<\/p>\n\n\n\n<p>3.\u6210\u5458\u53d8\u91cf\u7684\u53ea\u80fd\u4f7f\u7528\u57fa\u672c\u7c7b\u578b\uff08byte\u3001short\u3001int\u3001char\u3001long\u3001double\u3001float\u3001boolean\u548cString\u3001Enum\u3001Class\u3001annotations\u4ee5\u53ca\u8be5\u7c7b\u578b\u7684\u6570\u636e\uff09(\u6ca1\u6709\u9650\u5236\uff0c\u5927\u5bb6\u53ef\u4ee5\u4fee\u6539\u6d4b\u8bd5\u4e00\u4e0b\uff0c\u5c31\u6e05\u695a)<\/p>\n\n\n\n<p>4.\u5982\u679c\u53ea\u6709\u4e00\u4e2a\u6210\u5458\u53d8\u91cf\uff0c\u6700\u597d\u5c06\u53c2\u6570\u540d\u79f0\u8bbe\u4e3avalue\uff0c\u8d4b\u503c\u65f6\u4e0d\u7528\u5236\u5b9a\u540d\u79f0\u800c\u76f4\u63a5\u8d4b\u503c<\/p>\n\n\n\n<p>5.\u5728\u5b9e\u9645\u5e94\u7528\u4e2d\uff0c\u8fd8\u53ef\u4ee5\u4f7f\u7528\u6ce8\u91ca\u8bfb\u53d6\u548c\u8bbe\u7f6eBean\u4e2d\u7684\u53d8\u91cf\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e00\u3001\u4ec0\u4e48\u662f\u6ce8\u91ca \u8bf4\u8d77\u6ce8\u91ca\uff0c\u5f97\u5148\u63d0\u4e00\u63d0\u4ec0\u4e48\u662f\u5143\u6570\u636e(metadata)\u3002\u6240\u8c13\u5143\u6570\u636e\u5c31\u662f\u6570\u636e\u7684\u6570\u636e\u3002\u4e5f\u5c31\u662f\u8bf4\uff0c\u5143\u6570 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/thereisno.top\/?p=96\" class=\"more-link\">\u7ee7\u7eed\u9605\u8bfb<span class=\"screen-reader-text\">\u201cJava \u6ce8\u89e3\u201d<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-96","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/thereisno.top\/index.php?rest_route=\/wp\/v2\/posts\/96","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thereisno.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thereisno.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thereisno.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thereisno.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=96"}],"version-history":[{"count":2,"href":"https:\/\/thereisno.top\/index.php?rest_route=\/wp\/v2\/posts\/96\/revisions"}],"predecessor-version":[{"id":1333,"href":"https:\/\/thereisno.top\/index.php?rest_route=\/wp\/v2\/posts\/96\/revisions\/1333"}],"wp:attachment":[{"href":"https:\/\/thereisno.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=96"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thereisno.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=96"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thereisno.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=96"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}