src/share/classes/java/io/ObjectStreamClass.java
Print this page
*** 1470,1512 ****
name2 = name2.substring(name2.lastIndexOf('.') + 1);
return name1.equals(name2);
}
/**
* Returns JVM type signature for given class.
*/
! private static String getClassSignature(Class<?> cl) {
StringBuilder sbuf = new StringBuilder();
while (cl.isArray()) {
sbuf.append('[');
cl = cl.getComponentType();
}
! if (cl.isPrimitive()) {
! if (cl == Integer.TYPE) {
! sbuf.append('I');
! } else if (cl == Byte.TYPE) {
! sbuf.append('B');
! } else if (cl == Long.TYPE) {
! sbuf.append('J');
! } else if (cl == Float.TYPE) {
! sbuf.append('F');
! } else if (cl == Double.TYPE) {
! sbuf.append('D');
! } else if (cl == Short.TYPE) {
! sbuf.append('S');
! } else if (cl == Character.TYPE) {
! sbuf.append('C');
! } else if (cl == Boolean.TYPE) {
! sbuf.append('Z');
! } else if (cl == Void.TYPE) {
! sbuf.append('V');
! } else {
! throw new InternalError();
! }
! } else {
! sbuf.append('L' + cl.getName().replace('.', '/') + ';');
! }
return sbuf.toString();
}
/**
* Returns JVM type signature for given list of parameters and return type.
--- 1470,1522 ----
name2 = name2.substring(name2.lastIndexOf('.') + 1);
return name1.equals(name2);
}
/**
+ * Returns JVM type signature for given primitive.
+ */
+ private static String getPrimitiveSignature(Class<?> cl) {
+ if (cl == Integer.TYPE)
+ return "I";
+ else if (cl == Byte.TYPE)
+ return "B";
+ else if (cl == Long.TYPE)
+ return "J";
+ else if (cl == Float.TYPE)
+ return "F";
+ else if (cl == Double.TYPE)
+ return "D";
+ else if (cl == Short.TYPE)
+ return "S";
+ else if (cl == Character.TYPE)
+ return "C";
+ else if (cl == Boolean.TYPE)
+ return "Z";
+ else if (cl == Void.TYPE)
+ return "V";
+ else
+ throw new InternalError();
+ }
+
+ /**
* Returns JVM type signature for given class.
*/
! static String getClassSignature(Class<?> cl) {
! if (cl.isPrimitive())
! return getPrimitiveSignature(cl);
!
StringBuilder sbuf = new StringBuilder();
while (cl.isArray()) {
sbuf.append('[');
cl = cl.getComponentType();
}
!
! if (cl.isPrimitive())
! sbuf.append(getPrimitiveSignature(cl));
! else
! sbuf.append('L').append(cl.getName().replace('.', '/')).append(';');
!
return sbuf.toString();
}
/**
* Returns JVM type signature for given list of parameters and return type.