Java中的getClass()方法
阿新 • • 發佈:2018-11-13
Java中的getClass()方法
2018年03月09日 10:40:16 LittleLawson 閱讀數:862
版權宣告:如若轉載,請聯絡作者。 https://blog.csdn.net/liu16659/article/details/79494201
Java中的getClass()
方法
- 當使用getClass()方法的物件是普通類物件時,getclass()方法返回當前物件的類的資訊。程式碼如下
public class Test { public static void main(String args[]){ Test t = new Test(); System.out.println(t.getClass().getName()=="Test"); System.out.println(t.getClass().getCanonicalName());//獲取權威的類名 } }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
getName()方法,返回類名。
getCanonicalName()返回權威的類名。比如說,如果該類是一個匿名類,則返回輸出null;如果該類是根據java語法創建出的類,則返回輸出類名。
- 當使用getClass()方法的物件是內部類的物件時:
public class Test { public void Test(){ System.out.println("This is constructor of test!"); } public static void main(String args[]){ Test t = new Test(); Person p = t.new Person();//新建一個內部類物件 System.out.println(t.getClass().getCanonicalName());//獲取權威的類名 System.out.println(p.getClass().getCanonicalName()); } //內部類 class Person { public void play(String sportName) { System.out.println("I'am LittleLawson,I like play" + sportName); } } }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
輸出結果如下:
Test
Test.Person
- 1
- 2
- 當使用getClass()方法的物件是匿名內部類的物件時
abstract class People{ public void eat(String food){} } public class Test { public static void main(String args[]){ //匿名內部類 People peo = new People(){ @Override public void eat(String food) { System.out.println("I'm eating "+ food); } }; peo.eat("beat"); peo.getClass();//不輸出任何類名 peo.getClass().getCanonicalName();//不輸出任何資訊(為null) } }