请我想序列化几种类型的数组以了解内存中最差的情况。所以我创建了一个函数来序列化一个泛型类型int calcul(T a)
,它返回一个 int 的大小。
public class NewClass<T> {
public static void main(String[] args) throws IOException {
byte[] tabByte = new byte[56666];
Byte[] tabByte2 = new Byte[56666];
int[] tabInt = new int[56666];
ArrayList<Byte> arr=new ArrayList<Byte>(56666);
System.out.println("size array byte[]"+calcul(tabByte));
System.out.println("size array Byte[]"+calcul(tabByte2));
System.out.println("size array int[]"+calcul(tabInt));
System.out.println("size array ArrayList<Byte>"+calcul(arr));
}
static int calcul(T a) throws IOException {
ByteArrayOutputStream byteOutput = new ByteArrayOutputStream();
ObjectOutputStream stream = new ObjectOutputStream(byteOutput);
stream.writeObject(a);
int a = byteOutput.toByteArray().length;
stream.flush();
stream.close();
byteOutput.flush();
byteOutput.close();
return a;
}
}
但我有这个错误
non-static type variable T cannot be referenced from a static context
如何将通用变量设为静态并运行我的程序?