題目鏈接:P2680 [NOIP2015 提高組] 運輸計劃 - 洛谷 | 電腦科學教育新生態 (luogu.com.cn) 看了好長時間題解才終於懂的,有關lca和二分答案的題解解釋的不詳細,一時半會理解不過來,於是自己寫一篇解釋儘管解釋主要在代碼中,希望能對迷茫的小伙伴有幫助 解析(主要為二分 ...
轉自:
http://www.java265.com/JavaCourse/202206/3838.html
下文筆者講述反射常用API的簡介說明,如下所示:
獲取構造函數
Connstructor getConstructor(Class<?>... parameterTypes): 返回此Class對象對應類的指定public構造器 Constructor<?>[] getConstructors(): 返回此Class對象對應類的所有public構造器。 Constructor getDeclaredConstructor(Class<?>... parameterTypes): 返回此Class對象對應類的指定構造器,與構造器的訪問許可權無關 Constructor<?>[] getDeclaredConstructors(): 返回此Class對象對應類的所有構造器,與構造器的訪問許可權無關
獲取方法
Method getDeclaredMethod(String name, Class<?>... parameterTypes): 返回此Class對象對應類的指定方法,與方法的訪問許可權無關 Method[] getDeclaredMethods(): 返回此Class對象對應類的全部方法,與方法的訪問許可權無關
獲取屬性
Field getField(String name): 返回此Class對象對應類的指定public Field Field[] getFields(): 返回此Class對象對應類的所有public Field Field getDeclaredField(String name): 返回此Class對象對應類的指定Field,與Field的訪問許可權無關 Field[] getDeclaredFields(): 返回此Class對象對應類的全部Field,與Field的訪問許可權無關
獲取Class對應類上所包含的註解
A getAnnotation(Class annotationClass): 試圖獲取該Class對象對應類上指定類型的Annotation 如果該類型的註釋不存在,則返回null Annotation[] getAnnotations(): 返回該Class對象對應類上的所有Annotation Annotation[] getDeclaredAnnotations(): 返回直接修飾該Class對應類的所有Annotation
獲取Class對象對應類包含的內部類
Class<?>[] getDeclaredClasses(): 返回該Class對象對應類里包含的全部內部類
獲取Class對象對應類所在的外部類
Class<?> getDeclaringClass(): 返回該Class對象對應類所在的外部類
獲取Class對象對應類所繼承的父類、所實現的介面等
Class<?>[] getInterfaces(): 返回該Class對象對應類所實現的全部介面
獲取Class對象對應類所繼承的父類
Class<? super T> getSuperclass(): 返回該Class對象對應類的超類的Class對象
獲取Class對象對應類的修飾符、所在包、類名等基本信息
int getModifiers(): 返回此類或介面的所有修飾符 修飾符由public、protected、private、final、static、abstract等對應的常量組成 返回的整數應使用Modifier工具類的方法來解碼,才可以獲取真實的修飾符。 Package getPackage(): 獲取此類的包 String getName(): 以字元串形式返回此Class對象所表示的類的名稱 String getSimpleName(): 以字元串形式返回此Class對象所表示的類的簡稱
判斷該類是否為介面、枚舉、註釋類型等
boolean isAnnotation(): 返回此Class對象是否表示一個註釋類型(由@interface定義) boolean isAnnotationPresent(Class<? extends Annotation> annotationClass): 判斷此Class對象是否使用了Annotation註釋修飾 boolean isAnonymousClass(): 返回此Class對象是否是一個匿名類 boolean isArray(): 返回此Class對象是否表示一個數組類 boolean isEnum(): 返回此Class對象是否表示一個枚舉(由enum關鍵字定義) boolean isInterface(): 返回此Class對象是否表示一個介面(使用interface定義) boolean isInstance(Object obj): 判斷obj是否是此Class對象的實例,該方法可以完全代替instanceof操作符