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

简单工厂模式拿不到实例?

简单工厂模式拿不到实例?

跃然一笑 2019-03-01 10:40:40
package site.yanhui.section4; public interface Fruit { public void get(); } package site.yanhui.section4; public class Banana implements Fruit { @Override public void get() { System.out.println("采集香蕉"); } } package site.yanhui.section4; public class FruitFactory { /** * 获得所有的产品对象 * */ public static Fruit getFruit(String type) throws IllegalAccessException, InstantiationException, ClassNotFoundException { Class fruit = Class.forName(type); return (Fruit) fruit.newInstance(); } } package site.yanhui.section4; public class MainClass { public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException { // Fruit apple = FruitFactory.getFruit("Apple"); Fruit banana = FruitFactory.getFruit("Banana"); banana.get(); } } 异常: "C:\Program Files\Java\jdk1.8.0_73\bin\java" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.2\lib\idea_rt.jar=7117:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.2\bin" -Dfile.encoding=GBK -classpath "C:\Program Files\Java\jdk1.8.0_73\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_73\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_73\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_73\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_73\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_73\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_73\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_73\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_73\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_73\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_73\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_73\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_73\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_73\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_73\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_73\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_73\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_73\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_73\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_73\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_73\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_73\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_73\jre\lib\rt.jar;E:\Workplace\DesignPattern\SimpleFactory\out\production\SimpleFactory" site.yanhui.section4.MainClass Exception in thread "main" java.lang.ClassNotFoundException: Banana at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at site.yanhui.section4.FruitFactory.getFruit(FruitFactory.java:13) at site.yanhui.section4.MainClass.main(MainClass.java:9) Process finished with exit code 1 明明有香蕉类,但是为什么一直报错说没有找到类呢?
查看完整描述

2 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

输入完整包名+类名试试

查看完整回答
反对 回复 2019-03-01
?
慕慕森

TA贡献1856条经验 获得超17个赞

为了避免同名类的问题,要精准到包+类,Class.forName(xxx.xx.xx)

查看完整回答
反对 回复 2019-03-01
  • 2 回答
  • 0 关注
  • 477 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号