@@ -42,7 +42,7 @@ public class JDTCompiler extends AbstractCompiler {
4242
4343 public static boolean isValidElement (Element currentElement ) {
4444 try {
45- Class <?> elementClass = Class . forName ("org.eclipse.jdt.internal.compiler.apt.model.ElementImpl" );
45+ Class <?> elementClass = currentElement . getClass (). getClassLoader (). loadClass ("org.eclipse.jdt.internal.compiler.apt.model.ElementImpl" );
4646 return elementClass .isAssignableFrom (currentElement .getClass ());
4747 } catch (ClassNotFoundException e ) {
4848 return false ;
@@ -145,8 +145,9 @@ private static List<Object> lookupDeclarationOrder(TypeElement type) {
145145 List <Object > declarationOrder ;
146146 try {
147147 Object binding = field (type , "_binding" );
148- Class <?> sourceTypeBinding = Class .forName ("org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding" );
149- Class <?> binaryTypeBinding = Class .forName ("org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding" );
148+ ClassLoader classLoader = binding .getClass ().getClassLoader ();
149+ Class <?> sourceTypeBinding = classLoader .loadClass ("org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding" );
150+ Class <?> binaryTypeBinding = classLoader .loadClass ("org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding" );
150151
151152 declarationOrder = null ;
152153 if (sourceTypeBinding .isAssignableFrom (binding .getClass ())) {
@@ -190,9 +191,10 @@ public int compare(Object o1, Object o2) {
190191 }
191192 });
192193
193- Class <?> binaryMethod = Class .forName ("org.eclipse.jdt.internal.compiler.env.IBinaryMethod" );
194- Class <?> binaryField = Class .forName ("org.eclipse.jdt.internal.compiler.env.IBinaryField" );
195- Class <?> nestedType = Class .forName ("org.eclipse.jdt.internal.compiler.env.IBinaryNestedType" );
194+ ClassLoader classLoader = binding .getClass ().getClassLoader ();
195+ Class <?> binaryMethod = classLoader .loadClass ("org.eclipse.jdt.internal.compiler.env.IBinaryMethod" );
196+ Class <?> binaryField = classLoader .loadClass ("org.eclipse.jdt.internal.compiler.env.IBinaryField" );
197+ Class <?> nestedType = classLoader .loadClass ("org.eclipse.jdt.internal.compiler.env.IBinaryNestedType" );
196198
197199 List <Object > bindings = new ArrayList <>();
198200 for (Object sortedElement : sortedElements ) {
@@ -304,8 +306,9 @@ private static char[] getSource(Element element) throws Exception {
304306 */
305307
306308 Object binding = field (element , "_binding" );
307- Class <?> methodBindingClass = Class .forName ("org.eclipse.jdt.internal.compiler.lookup.MethodBinding" );
308- Class <?> referenceBindingClass = Class .forName ("org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding" );
309+ ClassLoader classLoader = binding .getClass ().getClassLoader ();
310+ Class <?> methodBindingClass = classLoader .loadClass ("org.eclipse.jdt.internal.compiler.lookup.MethodBinding" );
311+ Class <?> referenceBindingClass = classLoader .loadClass ("org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding" );
309312
310313 char [] source = null ;
311314 if (methodBindingClass .isAssignableFrom (binding .getClass ())) {
0 commit comments