为了账号安全,请及时绑定邮箱和手机立即绑定

这个也没有解决说如果excel没有这个类还能运行啊

public class test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        
	if("word".equals(args[0])){
			Class c;
			try {
				c = Class.forName(args[0]);
				word w=(word)c.newInstance();
				w.start();
			} catch (ClassNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (InstantiationException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IllegalAccessException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		if("excel".equals(args[0])){
			Class c;
			try {
				c = Class.forName(args[0]);
				excel e=(excel)c.newInstance();
				e.start();
			} catch (ClassNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (InstantiationException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IllegalAccessException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
        
	}

}

如果我没有excel的类,在编译时还是会报错,并不能实现这个功能,

难道说只能用接口,那样只能体现接口的作用

正在回答

2 回答

之所以会报错是因为这里使用的是静态加载,在目录下没有写excel的类当然会报错了

老师讲的意思是如何在Excel类有问题的情况下使用没有问题的Word类的方法,首先就是要通过编译才能使用

如何在Excel类有问题的情况下通过编译呢,就是使用动态加载了,也就是说当某个类在要使用的时候才进行相关的编译与加载,不使用的话就不加载,这样这个程序作为整体来说就可以运行没有问题的Word类和方法,只有运行到错误的Excel类的方法的时候,程序才会提示错误。

所以这个问题的关键核心在于:

如何在一个可能存在错误类的情况下尽可能使用没有存在错误的类,而不是如何解决错误的类。

1 回复 有任何疑惑可以回复我~
#1

小不点2016 提问者

非常感谢!
2016-08-05 回复 有任何疑惑可以回复我~

http://img1.sycdn.imooc.com//57a470a70001247503680361.jpg

编译时还是会报错是因为编译器监测了此处使用excel的语法错误(未定义excel类)

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

这个也没有解决说如果excel没有这个类还能运行啊

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信