Java中的getClass()以及getName()方法使用
getClass()及getName()方法使用
getClass
public final Class<?> getClass()
返回此 Object 的運行時類。返回的 Class 對象是由所表示類的 static synchronized 方法鎖定的對象。
Java的引用變量有兩個類型,編譯時類型和運行時類型。編譯時類型由聲明該變量時使用的類型決定,運行時類型由實際賦給該變量的對象決定。
public class StudentDemo { public static void main(String[] args) { Student ss = new StudentSon(1, 2); Class a = ss.getClass(); System.out.println(a.getName()); } }
getName
public String getName()
以 String 的形式返回此 Class 對象所表示的實體(類、接口、數(shù)組類、基本類型或 void)名稱。
實體:對象引用的目的地
該類運行時類型為StudentSon 編譯時類型為Student ,則ss.getClass()返回StudentSon類
運行結果:
StudentSon
關于getClass()與getName()一道題
在??途W(wǎng)上看到的一道題目
package test; import java.util.Date; public class SuperTest extends Date{ private static final long serialVersionUID = 1L; private void test(){ System.out.println(super.getClass().getName()); } public static void main(String[]args){ new SuperTest().test(); } }
1.super.getClass() 是父類的getClass()方法,其父類是Date,它的getClass()方法是繼承自Object類而且沒有重寫
2.在調用getName()方法而getName()是:包名+類名
所以輸出的是:
test.SuperTest
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
解決maven打包排除類不生效maven-compiler-plugin問題
總結:在Spring Boot項目B中作為項目A的依賴時,排除啟動類不生效的原因是被其他類引用或父POM引入,解決方法是跳過test編譯或注釋掉@SpringBootTest(classes={BApplication.class})2024-11-11Java流程控制之循環(huán)結構while、do...while
這篇文章主要介紹了Java流程控制之循環(huán)結構while及do...while,文章除了講解循環(huán)結構while和do...while之外,還講解了他們之間的區(qū)別,下面我們就一起進入文章講解更多詳細內容吧2021-12-12