لماذا Class.Forname () لا يعمل بالنسبة لي؟
-
05-09-2019 - |
سؤال
أحاول إنشاء إصدار فئة من المتغير، وكتب بعض رمز الاختبار. ولكن لسوء الحظ، فإنه لا يعمل. هنا هو الرمز:
Object co1 = new CommandDownloadHttp();
Class cc1 = Class.forName("CommandDownloadHttp");
Object co = cc1.newInstance();
لسوء الحظ على السطر الثاني تعطل مع java.lang.ClassNotFoundException
.
هل يمكن أن تخبرني ماذا أفعل الخطأ؟
المحلول
هو commanddownloadhttp ممتلىء اسم الفصل، أي ليس لديه حزمة؟ لو أنه هل لديك حزمة، وتشمل ذلك:
Class.forName("foo.bar.CommandDownloadHttp");
(أفترض أن هناك سبب أفضل لك للقيام بذلك في الكود الحقيقي الخاص بك، راجع للشغل - بوضوح في هذه الحالة لا تحتاج فعليا إلى جلب الفصل عن طريق الانعكاس :)
نصائح أخرى
هل صفك في حزمة؟ وهذه الحزمة المستوردة؟ لذلك يعمل في الخط 1. لكنك تحتاج إلى اسم مؤهل كامل في Class.Forname ("my.package.to.commanddownloadhttp").
لا تنتمي إلى StackOverflow