Java中的getClass()方法

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)
    }
}
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值