前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JAVA反射机制

JAVA反射机制

原创
作者头像
待你如初见
修改2022-08-30 17:57:07
4480
修改2022-08-30 17:57:07
举报
文章被收录于专栏:待你如初见待你如初见

反射机制

Class类,类类型的概念

代码语言:txt
复制
在面向对象的世界中,万事万物皆对象。Java语言中,静态的成员,
类是对象,类是Java.lang.class的实例对象

如何表示

三种表示方式

代码语言:txt
复制
//1.实例在告诉我们任何一个类都有一个隐含的静态成员变量class
Class c1 = new Foo();
//2.已知该类的对象通过getClass方法
Class c2 = Foo.getClass();
//官方 c1,c2表示了Foo类的类类型(Class Type)
//万事万物皆对象,类也是对象,是Class的对象 这个对象我们称为类类型
// 个人理解类类型意思是 类的类型
//c1 or c2 都是Foo的类类型 但一个类只可能是Class类的一个实例对象
System.out.print(c1==c2)
//3.通过类名字实例化
Class c3 = Class.forName("com.xc.Foo");//填全称 会有异常
//通常可以通过类类型创建该类的实例对象
Foo f1 = (Foo)c1.newInstance //需要做强制类型转换 需要有无参构造方法 会有异常

Class动态加载类的方法

通过Class.forName("类的全称")

类的加载方式(2种)

1、静态加载类

编译时,加载的类是静态加载类。 Foo foo = new Foo(); 创建对象是静态加载类,编译时就要加载所有要用到的类,如果其中 1 个类有问题,就无法通过编译。解决该问题,可以使用动态加载类。

代码语言:txt
复制
class office
{
    pubic static void main(String[] args){
        if("wrod".equals(args[0])){
            Word word = new Word();
            word.start();
        }
        if("Excel".equals(args[0])){
            Excel excel = new Excel();
            excel.start();
        }
    }
}
class word
{
    public void start(){
        System.out.print("word..start..");
    }
}

2、动态加载类

运行时,加载的类是动态加载类 Class.forName("com.reflect.Foo"); 编译时不检查用到的类是否存在,运行时再检查。

代码语言:txt
复制
class officeBetter
{
    pubic static void main(String[] args){
       try{
        //动态加载
        Class c = Class.forNname(args[0]);
        office o = (office)c.newInstance();
       }catch(Expction e){  
           e.printStackTrace();
       }
    }
}
interface office
{
    void start();
}

class word implements office
{
    public void start(){
        System.out.print("word..start..");
    }
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 反射机制
    • Class类,类类型的概念
      • 如何表示
    • Class动态加载类的方法
      • 类的加载方式(2种)
        • 1、静态加载类
        • 2、动态加载类
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档