reflections API का उपयोग करके यह सुनिश्चित करने के लिए काम करता है। यदि ऐसा नहीं होता है तो आप इसे गलत तरीके से सेट कर सकते हैं। मैंने अभी इस उदाहरण को बनाया है और यह किसी भी क्लासलोडर से स्वतंत्र रूप से पैकेज में सभी कक्षाओं को प्रिंट करता है।
package com.test;
import java.util.Arrays;
import java.util.Iterator;
import java.util.Set;
import org.reflections.Reflections;
import org.reflections.scanners.FieldAnnotationsScanner;
import org.reflections.scanners.MemberUsageScanner;
import org.reflections.scanners.MethodAnnotationsScanner;
import org.reflections.scanners.MethodParameterNamesScanner;
import org.reflections.scanners.MethodParameterScanner;
import org.reflections.scanners.SubTypesScanner;
import org.reflections.scanners.TypeAnnotationsScanner;
import org.reflections.util.ClasspathHelper;
import org.reflections.util.ConfigurationBuilder;
import org.reflections.util.FilterBuilder;
public class Runner {
public static void main(String[] args) {
Reflections reflections = new Reflections();
FilterBuilder TestModelFilter = new FilterBuilder().include("com.test.*");
reflections = new Reflections(new ConfigurationBuilder()
.setUrls(Arrays.asList(ClasspathHelper.forClass(Runner.class))).filterInputsBy(TestModelFilter)
.setScanners(new SubTypesScanner(false), new TypeAnnotationsScanner(), new FieldAnnotationsScanner(),
new MethodAnnotationsScanner(), new MethodParameterScanner(), new MethodParameterNamesScanner(),
new MemberUsageScanner()));
Set<Class<? extends Object>> allClasses = reflections.getSubTypesOf(Object.class);
System.out.println(allClasses);
for (Iterator it = allClasses.iterator(); it.hasNext();) {
Class<? extends Object> clazz = (Class<? extends Object>) it.next();
System.out.println(clazz.getCanonicalName());
}
}
}
मैंने इरादे से सभी आयात जोड़े, ताकि आप देख सकें कि यह कौन सी एपीआई उपयोग करता है। क्या यह आपके लिए काम करता है?
स्रोत
2015-09-04 08:08:26
http://stackoverflow.com/questions/520328/can-you-find-all-classes-in-a-package-using-reflection इस – iluxa
@iluxa का उत्तर देने लगता है मैं पैकेज में सभी कक्षाएं प्राप्त कर सकता हूं , लेकिन केवल तभी लोड किया गया है जब वे –
समझाए गए [यहां] (http://stackoverflow.com/questions/520328/can-you-find-all-classes-in-a-package-using-reflection/520344#520344) – mithrandir