>>>>> "arenn" == arenn  <[EMAIL PROTECTED]> writes:

>> does Classpath aim to provide the same values for final fields as the Sun
>> JDK implementation does, even if the concrete value is not part of the
>> specification?

This is required.  Otherwise the "write once run anywhere" feature of
Java is compromised.

arenn> In short, yes.  I've captured these values in the past by
arenn> writing short programs that dump them to stdout.

In libgcj we have a simple program that uses reflection to print
integer values.  I've appended this.  This can be really useful when
you have a lot of such constants.

Tom

// Show a value given class name and constant name.

/* Copyright (C) 2000  Free Software Foundation

   This file is part of libgcj.

This software is copyrighted work licensed under the terms of the
Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
details.  */

/* Written by Tom Tromey <[EMAIL PROTECTED]>.  */

// Use like this to print a `static final' value (integers only, not
// strings yet):
//   java showval java.awt.geom.AffineTransform.TYPE_IDENTITY
// Prints result like:
//   TYPE_IDENTITY = 0
// In conjunction with a keyboard macro you can do a number of
// constants very easily.

import java.lang.reflect.*;

public class showval
{
  public static void main (String[] args)
  {
    int ch = args[0].lastIndexOf ('.');
    String className = args[0].substring (0, ch);
    String constName = args[0].substring (ch + 1);
    try
      {
        Class klass = Class.forName (className);
        Field field = klass.getField (constName);
        System.out.println (constName + " = " + field.getInt (null));
      }
    catch (Throwable _)
      {
        System.out.println (_);
      }
  }
}

_______________________________________________
Classpath mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/classpath

Reply via email to