如何通过反射创建对象

2025-10-27 02:58:34

1、当拿到一个类的时候,肯定要直接使用关键字new进行对象的实例化操作,这属于习惯性的做法,但是有了Class类对象,那么就可以做到,利用反射来实现对象实例化操作:

如何通过反射创建对象

2、实例化对象的方法:

package com.gwolf.crud.utils;

import com.gwolf.crud.bean.Book;

public class TestDemo {

        public static void main(String[] args) throws Exception {

                Class<?> cls = Class.forName("com.gwolf.crud.bean.Book");

                Object obj = cls.newInstance();

                Book book = (Book)obj;

                System.out.println(book);

        }

}

如何通过反射创建对象

3、有了反射之后,以后进行对象实例化的操作不在只是单独的依靠关键字new完成了,反射也同样可以完成,但是并不表示new就被完全取代了。

如何通过反射创建对象

4、在任何的开发之中,new是造成耦合的最大元凶,一起的耦合都起源于new。

我们以工厂方法为例:

如何通过反射创建对象

5、接下来如果Car要增加一个子类,我们就意味着要更改工厂类。每增加一个类就要去修改工厂类,那么如果随时要增加子类。因为现在工厂类中的对象都是通过关键字new直接实例化的。要解决这个问题就只能依靠反射完成。

package com.gwolf.crud.utils;

import com.gwolf.crud.bean.Car;

public class SimpleFactory {

        public static Car createCar(String className) throws Exception {

                Car car = null;

                

                car = (Car)Class.forName(className).newInstance();

                

                return car;

        }

        

        

}

如何通过反射创建对象

6、此时的程序就真正的完成了解耦合的目的,而且可扩展性非常的强。

如何通过反射创建对象

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢