reflection

Get Fields from an Object

In this example we shall show you how to get the fields of a class represented by an object. To get the fields of a class represented by an object one should perform the following steps:

  • Get an array containing Field objects reflecting all the accessible public fields of the class or interface represented by this Class object, with getFields() API method of Class.
  • Then get an array of Field objects reflecting all the fields declared by the class or interface represented by this Class object, with getDeclaredFields() API method of Class. This includes public, protected, default (package) access, and private fields, but excludes inherited fields,

as described in the code snippet below.

package com.javacodegeeks.snippets.core;

import java.lang.reflect.Field;

public class GetFieldsFromAnObject {
		
	public static void main(String[] args) {
		
		Class<?> clazz = java.lang.String.class;
		Field[] fields;

		// list with all the accessible public fields of the class or interface
		fields = clazz.getFields();
		for (int i = 0; i < fields.length; i++) {
			System.out.println("Found public field: " + fields[i]);
		}
		
		System.out.println();

		// list with all the fields declared by this class or interface
		fields = clazz.getDeclaredFields();
		for (int i = 0; i < fields.length; i++) {
			System.out.println("Found field: " + fields[i]);
		}
		
	}

}

Output:

Found public field: public static final java.util.Comparator java.lang.String.CASE_INSENSITIVE_ORDER

Found field: private final char[] java.lang.String.value
Found field: private final int java.lang.String.offset
Found field: private final int java.lang.String.count
Found field: private int java.lang.String.hash
Found field: private static final long java.lang.String.serialVersionUID
Found field: private static final java.io.ObjectStreamField[] java.lang.String.serialPersistentFields
Found field: public static final java.util.Comparator java.lang.String.CASE_INSENSITIVE_ORDER

 
This was an example of how to get the fields of a class represented by an object in Java.

Byron Kiourtzoglou

Byron is a master software engineer working in the IT and Telecom domains. He is an applications developer in a wide variety of applications/services. He is currently acting as the team leader and technical architect for a proprietary service creation and integration platform for both the IT and Telecom industries in addition to a in-house big data real-time analytics solution. He is always fascinated by SOA, middleware services and mobile development. Byron is co-founder and Executive Editor at Java Code Geeks.
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Back to top button