《JAVA筑基》第31天:JAVA高级技术-反射实战1(动态实例化类)

1,669 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情

❤️作者主页:小虚竹

❤️作者简介:大家好,我是小虚竹。Java领域优质创作者🏆,CSDN博客专家🏆,华为云享专家🏆,掘金年度人气作者🏆,阿里云专家博主🏆

❤️技术活,该赏

❤️点赞 👍 收藏 ⭐再看,养成习惯

PC端主页可联系我,欢迎问题咨询和技术交流!

零、前言

我的学习策略很简单,题海策略+ 费曼学习法。如果能把这100题都认认真真自己实现一遍,那意味着 JAVA语言 已经筑基成功了。后面的进阶学习,可以继续跟着我,一起走向架构师之路。

题目描述:JAVA高级技术-反射实战1(动态实例化类)

一、题目

JAVA一般是使用构造方法来创建对象,构造方法又分有参构造和无参构造。如果类里面没有定义构造方法,编译器会添加一个无参构造方法。

除了用构造方法,还可以用反射创建对象。

二、解题思路

定义一个类,名为NewClassTest

在main方法中,创建一个File对象,对使用这个File对象在D盘创建一个文本文件。

使用Constructor类及其相关方法实现。

Constructor类提供类的单个构造方法的信息以及对它的访问权限。

三、代码详解

public class NewClassTest {
    public static void main(String[] args) {
        try {//获得File类的Constructor对象
            Constructor<File> constructor =
                    File.class.getDeclaredConstructor(String.class);
            System.out.println("使用反射创建File对象");
            File file = constructor.newInstance("d://小虚竹.txt");
            System.out.println("使用File对象在D盘创建文件:小虚竹.txt");
            file.createNewFile();//创建新的文件
            System.out.println("文件是否创建成功:" + file.exists());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

如图