private int primitiveSize(Class<?> type) {
if (type == byte.class || type == boolean.class) {
return 1;
}
if (type == short.class || type == char.class) {
return 2;
}
if (type == int.class || type == float.class) {
return 4;
}
if (type == long.class || type == double.class) {
return 8;
}
throw new AssertionError();
}