Hi to all,
Hope you all will be fine. Consider this simple code. I just want to checked how you can get fields of the class or in other words what getFields() return.
Code:
import java.lang.reflect.Field;
public class Main {
public static final String cat = "cat";
public static final String dog = "dog";
public static enum State { DEALLOCATED, ALLOCATING, ALLOCATED, READY, RECOGNIZING, DEALLOCATING, ERROR };
public String bird = "bird";
private String turtle = "Turtle";
public void printAnimalName() {
System.out.println("Animal Name");
}
public static void main(String[] args) {
Main mainObject = new Main(); //Creating object of Main class
/*********************
* Fragment 1
********************/
mainObject.comments(1); // Method that print comments in the output
try {
Class<?> t = Class.forName("Main");
//Class<?> t = Animal.class;
Field fields[] = t.getFields();
for (int i = 0; i < fields.length; i++) {
System.out.println(" " + fields[i]);
}
} catch (ClassNotFoundException e) {
System.out.println("class not found " + e);
}
/*********************
* Fragment 2
********************/
mainObject.comments(2);
//Class<?> t = Class.forName("Main");
Class<?> t = Main.class;
Field fields[] = t.getFields();
for (int i = 0; i < fields.length; i++) {
System.out.println(" " + fields[i]);
}
/*********************
* Fragment 3
********************/
mainObject.comments(3);
try{
Class<?> s = Class.forName("java.lang.Integer");
Field IntegerFields[] = s.getFields();
for (int i = 0; i < IntegerFields.length; i++) {
System.out.println(" " + IntegerFields[i]);
}
}catch (ClassNotFoundException e) {
System.out.println("class not found " + e);
}
} // main()
} //class Main
This is the result of above code
Code:
run:
/********************
* Fragment 1
*******************/
class not found java.lang.ClassNotFoundException: Main
/********************
* Fragment 2
*******************/
public static final java.lang.String getfieldscheck.Main.cat
public static final java.lang.String getfieldscheck.Main.dog
public java.lang.String getfieldscheck.Main.bird
/********************
* Fragment 3
*******************/
public static final int java.lang.Integer.MIN_VALUE
public static final int java.lang.Integer.MAX_VALUE
public static final java.lang.Class java.lang.Integer.TYPE
public static final int java.lang.Integer.SIZE
i want to ask in fragment 1 when i used
Code:
Class<?> t = Class.forName("Main");
then i got exception. But when i used in fragment 3
Code:
Class<?> s = Class.forName("java.lang.Integer");
then i got the result. Why in fragment 1 Class.forName("Main") fails?
Thanks