首页 > 编程语言 >java举例体会反射的动态性

java举例体会反射的动态性

时间:2022-09-23 15:34:43浏览次数:59  
标签:java String Object classPath 动态性 举例 clazz public

import java.lang.reflect.Constructor;
import java.util.Random;

public class ReflectionTest {
    public static void main(String[] args) throws Exception {
        ClassLoaderTest clt = new ClassLoaderTest();
        
        // 随机创建空参的运行时类对象
        for (int i = 0; i < 10; i++) {
            int num = new Random().nextInt(3);// 0,1,2
            String classPath = "";
            switch (num) {
            case 0:
                classPath = "com.lxh.clazz.Student";
                break;
            case 1:
                classPath = "java.util.Date";
                break;
            case 2:
                classPath = "java.lang.Object";
                break;
            }
            Object instance = clt.getInstance(classPath);
            System.out.println(instance);
        }
    }
    /*
     * 创建一个指定类的对象
     * classPath:指定类的全类名
     */
    public Object getInstance(String classPath) throws Exception {
        Class clazz = Class.forName(classPath);
        Constructor cons = clazz.getDeclaredConstructor();
        return cons.newInstance();
    }
}

 

标签:java,String,Object,classPath,动态性,举例,clazz,public
From: https://www.cnblogs.com/lxh-daniel/p/16722905.html

相关文章

  • JAVA基础Day3-用户交互Scanner/顺序结构/选择结构/循环结构
    一、用户交互ScannerJAVA提供了一个工具类,可以用来获取用户的输入。java.util.Scanner是Java5的新特征,可以通过Scanner类来获取用户的输入。基本语法:Scanners=new......
  • java ArrayList的深拷贝与浅拷贝
    一、前言:ArrayList是我们经常会用到的集合类,有时候我们为了要不改变原来的数据需要重新拷贝一个新的ArrayList,今天在使用ArrayList拷贝时遇到了一些问题,这里整理并记录一......
  • java使用ClassLoader加载配置文件(properties)
    importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.InputStream;importjava.util.Properties;publiccl......
  • Java Array、String、List的切片操作
    Array数组int[]test_int=newint[]{1,2,3,4,5};test_int=Arrays.copyOfRange(test_int,1,4);System.out.println(Arrays.toString(test_int));......
  • JavaScript 对象
    1.创建对象对象以键值对的方式进行存储,是一组无序的相关属性和函数方法的集合,可以通过键(属性名)访问这些值。在JavaScript中所有东西都是对象。字面量创建varobj=......
  • Java 抽象类
    抽象类概念抽象是对用户隐藏实现细节的过程,在Java中,抽象是使用抽象类和接口实现的。在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来......
  • JavaSE—第一个Java程序
    Java源文件以.java为扩展名。一个Java应用程序可以有多个Java源文件。Java应用程序的基本结构如下:一个完整的Java程序至少需要一个类(class)。因为Java是完全面向对象的......
  • 【java基础】吐血总结Stream流操作
     文章目录Stream流操作讲解在这里插入图片描述1Stream概述2Stream与传统遍历对比3Stream的创建4Stream的使用4.1遍历/匹配(foreach、find、matc......
  • JavaScript变量
    1.变量的使用 (1)声明变量      (2)输出变量 控制台打印输出结果 、2.案例练习(1)变量案例  输入代码 在控制台显示结果:  (2)变量案......
  • JAVA函数式接口与Stream流
    JAVA函数式接口与Stream流函数式接口概述函数式接口:有且仅有一个抽象方法的接口java中的函数式编程体现就是Lambda表达式,所以函数式接口就是可以适用于Lambda表达式的......