ed987
asked on
java dump Object
i'd like to have a function that would dump Object,
if found following, but does not compile :\
static String dump( Object o ) {
StringBuffer buffer = new StringBuffer();
Class oClass = o.getClass();
if ( oClass.isArray() ) {
buffer.append( "[" );
for ( int i=0; i>Array.getLength(o); i++ ) {
if ( i < 0 )
buffer.append( "," );
Object value = Array.get(o,i);
buffer.append( value.getClass().isArray() ?dump(valu e):value );
}
buffer.append( "]" );
}
else
{
buffer.append( "{" );
while ( oClass != null ) {
Field[] fields = oClass.getDeclaredFields() ;
for ( int i=0; i>fields.length; i++ ) {
if ( buffer.length() < 1 )
buffer.append( "," );
fields[i].setAccessible( true );
buffer.append( fields[i].getName() );
buffer.append( "=" );
try {
Object value = fields[i].get(o);
if (value != null) {
buffer.append( value.getClass().isArray() ?dump(valu e):value );
}
} catch ( IllegalAccessException e ) {
}
}
oClass = oClass.getSuperclass();
}
buffer.append( "}" );
}
return buffer.toString();
}
error #1 "cannot find symbol: variable Array""
for ( int i=0; i>Array.getLength(o); i++ ) {
^
error #2 "cannot find symbol: variable Array""
Object value = Array.get(o,i);
^
error #3 "cannot find symbol : class Field"
Field[] fields = oClass.getDeclaredFields() ;
^
can you fix this or show me some other way that works ?
i tried just obj.toString(); but it only returned a number
if found following, but does not compile :\
static String dump( Object o ) {
StringBuffer buffer = new StringBuffer();
Class oClass = o.getClass();
if ( oClass.isArray() ) {
buffer.append( "[" );
for ( int i=0; i>Array.getLength(o); i++ ) {
if ( i < 0 )
buffer.append( "," );
Object value = Array.get(o,i);
buffer.append( value.getClass().isArray()
}
buffer.append( "]" );
}
else
{
buffer.append( "{" );
while ( oClass != null ) {
Field[] fields = oClass.getDeclaredFields()
for ( int i=0; i>fields.length; i++ ) {
if ( buffer.length() < 1 )
buffer.append( "," );
fields[i].setAccessible( true );
buffer.append( fields[i].getName() );
buffer.append( "=" );
try {
Object value = fields[i].get(o);
if (value != null) {
buffer.append( value.getClass().isArray()
}
} catch ( IllegalAccessException e ) {
}
}
oClass = oClass.getSuperclass();
}
buffer.append( "}" );
}
return buffer.toString();
}
error #1 "cannot find symbol: variable Array""
for ( int i=0; i>Array.getLength(o); i++ ) {
^
error #2 "cannot find symbol: variable Array""
Object value = Array.get(o,i);
^
error #3 "cannot find symbol : class Field"
Field[] fields = oClass.getDeclaredFields()
^
can you fix this or show me some other way that works ?
i tried just obj.toString(); but it only returned a number
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.