jeudi 29 septembre 2016

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException {using Reflection} [duplicate]

This question already has an answer here:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at ReflectApp.main(ReflectApp.java:8)

can someone explain what causing the exception and how to handle it? I'm new to java and unable to find out what causing this Exception.

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;

public class ReflectApp
{
 public static void main(String args[]) {
 String parm=args[0];
 Class className=null;

try{
  Class name=Class.forName(parm);
}

catch(ClassNotFoundException ex)
{
  System.out.println("Not a class or interface");
  System.exit(0);
}

describeClassOrInterface(className,parm);

}

static void describeClassOrInterface(Class className,String name)
{
displayModifiers(className.getModifiers());
displayFields(className.getDeclaredFields());
displayMethods(className.getDeclaredMethods());

if (className.isInterface())
{
System.out.println("interface: "+name);
}
else
{
System.out.println("class: "+name);
displayInterfaces(className.getInterfaces());
displayConstructors(className.getDeclaredConstructors());
}

 }

static void displayModifiers(int m)
{
 System.out.println("modifiers: "+Modifier.toString(m));
}

static void displayInterfaces(Class[] interfaces)
{
 if (interfaces.length>0)
{
  System.out.println("interfaces");
  for(int i=0;i<interfaces.length;i++)
  {
    System.out.println(interfaces[i].getName());
  }
 }
}

 static void  displayFields(Field[] fields)
{
 if (fields.length>0)
 {
  System.out.println("Fields");
  for (int i=0;i<fields.length ;i++ ) {
    System.out.println(fields[i].toString());

  }
 }

}

static void displayConstructors(Constructor[] constructors)
{
 if (constructors.length>0)
 {
   System.out.println("constructors: ");
 }
}

static void displayMethods(Method[] methods)
{
if(methods.length>0)
 {
  System.out.println("methods: ");
  for (int i=0;i<methods.length ;i++ ) {
    System.out.println(methods[i].toString());

  }
 }
}
}





Aucun commentaire:

Enregistrer un commentaire