java:关于getClass()方法 java中getClass()的用法

java \u5173\u4e8egetClass()

\u539f\u56e0\u662f\uff1a
\u4f60\u518dC\u7c7b\u4e2d\u5b9a\u4e49\u4e86func()\u65b9\u6cd5\uff0c\u5728B\u7c7b\u4e2d\u6ca1\u6709\u8fd9\u4e2a\u65b9\u6cd5\uff0c\u4f60\u7528B\u7c7b\u7684\u5bf9\u8c61\u53bb\u8c03\u7528\u5f53\u7136\u5c31\u6ca1\u6709\u4e86
C obj = new C();
Method method=getClass().getMethod("fun");
method.invoke(obj);
\u8fd9\u6837\u5c31\u53ef\u4ee5\u4e86\u3002

\u662f\u7684\uff0c\u622a\u56fe\u91cc\u5212\u7ebf\u7684\u4e24\u4e2a\u65b9\u6cd5\u540d\u5fc5\u987b\u4e00\u81f4
\u6309\u7167Java\u91cc\u65b9\u6cd5\u547d\u540d\u89c4\u8303\u6765\u770b\uff0c\u5e94\u8be5\u5c06\u65b9\u6cd5\u58f0\u660e\u65f6\u7684\u65b9\u6cd5\u540d\u6539\u4e3aprintClassInfo
public static void printClassinfo(Object obj){....}//\u8fd9\u662f\u58f0\u660e\u4e00\u4e2a\u65b9\u6cd5
printClassInfo(strObj);//\u5f53\u8981\u8c03\u7528\u8fd9\u4e2a\u65b9\u6cd5\u65f6\u65b9\u6cd5\u540d\u5e94\u8be5\u4e0e\u58f0\u660e\u65f6\u7684\u65b9\u6cd5\u540d\u4e00\u81f4
//\u4e0d\u8fc7\u6309\u7167Java\u4e2d\u65b9\u6cd5\u7684\u547d\u540d\u89c4\u8303\u5e94\u8be5\u6539\u53d8\u58f0\u660e\u91cc\u7684\u65b9\u6cd5\u540d\u4e3aprintClassInfo

java.lang.Object中getClass()方法的用途:可以获取一个类的定义信息,然后使用反射去访问其全部信息(包括函数和字段)。还可以查找该类的ClassLoader,以便检查类文件所在位置等。

Class test=xxx.getClass(); 
//test带的方法有什么用 
//比如说可以返回类名
//知道该类中字段 
//知道该类中方法名 
//知道该类中参数名 
//知道该类中方法返回类型

好比说 :

Collection c=new ArrayList(); 
Class class=c.getClass(); 
List ll=c.getMethod("sublist",int.class,int.class).invoke(c,0,0);

从上面简单写了一段代码,会发现 Collection c仍然能调用sublist()方法,也就是利用了getClass()方法的反射机制了。



Object类是所有类的超类,并且它有getClass()这个方法

API:
getClass
public final Class<? extends Object> getClass()
返回一个对象的运行时类。该 Class 对象是由所表示类的 static synchronized 方法锁定的对象。
返回:表示该对象的运行时类的 java.lang.Class 对象。此结果属于类型 Class<? extends X>,其中 X 表示清除表达式中的静态类型,该表达式调用 getClass。

首先纠正你一个错误那就是:Object类里是有getClass()方法的,你自己查阅一下jdk 的api吧,你把这个错误纠正了,你就可以理解这段代码了

Object有getClass啊~
public final native Class<?> getClass();

代理啊。Object也是一个类啊。是所有类的父类

  • java:鍏充簬getClass()鏂规硶
    绛旓細java.lang.Object涓getClass()鏂规硶鐨勭敤閫旓細鍙互鑾峰彇涓涓被鐨勫畾涔変俊鎭紝鐒跺悗浣跨敤鍙嶅皠鍘昏闂叾鍏ㄩ儴淇℃伅(鍖呮嫭鍑芥暟鍜屽瓧娈)銆傝繕鍙互鏌ユ壘璇ョ被鐨凜lassLoader锛屼互渚挎鏌ョ被鏂囦欢鎵鍦ㄤ綅缃瓑銆侰lass test=xxx.getClass(); //test甯︾殑鏂规硶鏈変粈涔堢敤 //姣斿璇村彲浠ヨ繑鍥炵被鍚//鐭ラ亾璇ョ被涓瓧娈 //鐭ラ亾璇ョ被涓柟娉曞悕 //...
  • java涓instanceof鍜getClass鐨勫尯鍒垎鏋
    绛旓細1.instanceof锛氭瘮杈冪殑鏄户鎵垮叧绯绘垨鑰呭疄鐜板叧绯荤殑绫荤被鍨,瀛愮被瀵硅薄鎴栬呭疄鐜扮被瀵硅薄鏀惧湪鍓嶉潰锛屼緥濡傦細class A{} class B extends A{} B b = new B();b instanceof A 2.getClass()锛氭瘮杈冧换浣曠被鐨勭被鍨嬶紙涓や釜姣笉鐩稿共鐨勭被鍨嬶紝褰撶劧杩欎篃娌″暐鎰忎箟锛夛紝涔熷彲浠ラ氳繃isAssignableFrom(Class<?> cls)鏂规硶姣旇緝锛...
  • java涓涓や釜瀵硅薄鐨getClass()鐩稿悓鎰忓懗鐫浠涔
    绛旓細java涓袱涓璞$殑getClass()鐩稿悓锛屾剰鍛崇潃杩2涓璞℃槸鍚屼竴涓被锛圕lass锛夊疄渚嬶紙瀵硅薄锛
  • 鍏充簬java this.getClass();
    绛旓細Java鐨姣忎釜绫婚兘甯︽湁涓涓繍琛屾椂绫诲璞★紝璇lass瀵硅薄涓繚瀛樹簡鍒涘缓瀵硅薄鎵闇鐨勬墍鏈変俊鎭傚彲浠ョ敤.class杩斿洖姝 Object 鐨勮繍琛屾椂绫籆lass瀵硅薄锛屼篃鍙互鐢getClass()鑾峰緱銆傝幏寰楁瀵硅薄鍚庡彲浠ュ埄鐢ㄦClass瀵硅薄鐨勪竴浜涘弽灏勭壒鎬ц繘琛屾搷浣滐紝渚嬪锛歵his.getClass().newInstance(); //鐢ㄧ己鐪佹瀯閫犲嚱鏁板垱寤轰竴涓绫荤殑瀵硅薄 this....
  • Java涓鐢.getClass鎴栬呯被鍚.class寰楀埌瀛楄妭鐮佹枃浠舵湁浠涔堜綔鐢,寰楀埌涔嬪悗...
    绛旓細1锛孋lass绫绘湁浠涔堢敤锛烠lass绫荤殑瀹炰緥琛ㄧずjava搴旂敤杩愯鏃剁殑绫(Class ans enum)鎴栨帴鍙(interface and annotation)锛堟瘡涓猨ava绫昏繍琛屾椂閮藉湪JVM閲岃〃鐜颁负涓涓狢lass瀵硅薄锛屽彲閫氳繃绫诲悕.Class,绫诲瀷.getClass(),Class.forName("绫诲悕")绛夋柟娉曡幏鍙朇lass瀵硅薄锛夈傛暟缁勫悓鏍蜂篃琚槧灏勪负涓篊lass 瀵硅薄鐨勪竴涓被锛屾墍鏈夊叿鏈夌浉鍚...
  • Java涓鐨getClass()鏂规硶鏄粈涔堟剰鎬?銆
    绛旓細鑾峰緱褰撳墠瀵硅薄鐨勭被鍨...java涓鏈塁lass绫,鐢ㄤ互鎻忚堪绫诲瀷淇℃伅.濡傜敤涓嬮潰鐨勮鍙 Class theClass="hello".getClass();寰楀埌鐨勫氨鏄瓧绗︿覆鐨勭被鍨.
  • Java涓绫诲悕.class鍜屽璞.getclass鏈変粈涔堝尯鍒?
    绛旓細绫诲悕.class 鐨勬柟寮忔洿鍔犲畨鍏紝渚嬪褰撲綘瑕佽幏鍙栦竴涓帴鍙g殑class鏃讹紝鍙互浣跨敤 绫诲悕.class 鐨勬柟寮忚幏鍙 浣嗘鏃跺氨涓嶈兘閫氳繃 瀵硅薄.getClass 鐨勬柟寮忚幏鍙栦簡锛屽洜涓烘帴鍙f槸娌℃湁瀹炰緥瀵硅薄鐨勶紝鎺ュ彛鍙湁瀹炵幇绫诲璞★紝閫氳繃杩欑鏂瑰紡鑾峰彇鍒扮殑鏄帴鍙g殑瀹炵幇绫荤殑class锛岃岄潪鏄帴鍙g殑class 鍐嶈呭氨鏄璞″0鏄庣殑绫诲瀷鏈繀鏄璞℃湰韬...
  • java涓Object绫荤殑getClass鏂规硶鏈変粈涔堢敤浠ュ強鎬庝箞浣跨敤?缁欏疄渚!
    绛旓細class EmployeeMark { public EmployeeMark() { } } public class Test { public static void main(String[] args) { EmployeeMark e = new EmployeeMark();/* public final Class getClass() Returns the runtime class of an object.銆傘傘傝鎯呰瑙侊細http://tieba.baidu.com/p/3140002525 ...
  • java 涓Object绫婚噷闈㈢殑 getClass鍑芥暟鏄痜inal绫诲瀷鐨, 涓轰綍杩樺彲浠ヨ瀛愮被缁...
    绛旓細棣栧厛getClass鏄釜final锛屽畠涓嶅彲鑳介噸鍐 鍏舵getClass鏄釜native鐨勬柟娉曞叿浣撳疄鐜版槸鍩轰簬鍘熺敓鐨勬湰鍦扮被鏂规硶锛屾簮鐮佷腑骞舵病鏈変綋鐜 鎴戠殑鐚滄兂鏈湴鏂规硶涓竴瀹氭槸璇诲彇浜嗗綋鍓嶅璞$殑绫讳俊鎭俻ublic static void main(String[] args) throws IOException { B b=new B();b.echo();} static class A{ private String ...
  • java getClass() 鍜 getSimpleName() 浣滅敤鏄粈涔 鍙湁鎶借薄鐨勭被閲屽彲浠...
    绛旓細鏂规硶鍘熷瀷锛歱ublic final Class<?> getClass()杩斿洖姝 Object 鐨勮繍琛屾椂绫汇俫etSimpleName()鏂规硶涔熸槸Object绫荤殑锛屾柟娉曞師鍨嬶細public String getSimpleName()杩斿洖婧愪唬鐮佷腑缁欏嚭鐨勫簳灞傜被鐨勭畝绉般傚彧鏈夋娊璞$殑绫婚噷鎵嶈兘鍐欐娊璞℃柟娉 鎶借薄绫荤殑浣滅敤鏄唬鐮侀噸鐢紝璁╁瓙绫诲幓缁ф壙锛屽垯瀛愮被蹇呴』瀹炵幇瀹冪殑鎶借薄鏂规硶锛岀敤涓涓娊璞$埗...
  • 扩展阅读:欧洲vpswindows直播抖音 ... apple日本网站 ... java.52emu.cn ... seo短视频网页入口营销 ... www.968777.cn ... javascript innerhtml ... java_home ... 在线linux网站 ... javascript免费网站 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网