关于这个demo不理解的地方

来源:2-1 Java 动态加载类

把青春献给党

2016-10-25 09:33

Class.forName(类的完整路径)  那么args[0]里的路径是什么?直接打印输出是数组下标越界

写回答 关注

5回答

  • zsl200911
    2016-10-25 10:14:31
    已采纳

    args运行是运行时给定的参数,因而在运行是需要给定参数。在IDE工具中打印args.length长度是0,测试arg[0]最好是采用控制台(DOS窗口)运行java程序,运行是给定参数,比如java 类名 参数(java HelloWorld imooc),arg[0]就可以正常打印

    把青春献给党

    Class.forName(args[0]) 我想问的是这个。 视频中args[0]输入的是word 但是forName函数要求的不是完整类名路径嘛?他只有类名怎么也可以运行。 我没有用dos测试过。eclipse好像是不支持运行时输入的

    2016-10-25 12:31:58

    共 2 条回复 >

  • 小虎头的小骨头
    2016-10-25 10:33:04

    这个args[0]阿,就是在main方法里面传进来的第一个参数.

    你去看main方法的结构

    public static void main(String[] args) {
    //Your Code
    }

    这个string[] args就是用来接收参数的

    所以你下方的args[0]就是传进来的第一个参数,也可以理解为数组里面的下表为0的字符串.从你的代码来看,这个参数应该是一个完整的类名


  • WendyMay
    2016-10-25 10:27:05

    在运行时是使用java office Word,在这里args[0]  就是Word

    Class c1=Class.forName(args[0]);
        System.out.println(args[0]);
        OfficeAble oa=(OfficeAble)c1.newInstance();
        oa.start();

  • 修炼狂人
    2016-10-25 10:17:50

    Class.forname()带包名的类,args[0]这里代表的是某个类的名字,这种情况一般是把编译和运行分开,因为类所在的位置就是当前的相对地址下,所以可以不带包名。可以详细百度一下args,这个是需要你运行的时候输入对应内容的。

  • 慕粉3876148
    2016-10-25 10:10:38

    class.forname(返回的不是类么?)并不是路径啊

反射——Java高级开发必须懂的

反射,Java高级开发必须要懂的知识点,学好Java高级课程的基础

151465 学习 · 335 问题

查看课程

相似问题