我必须获得我不知道的类型的对象的大小。这是我想要实现的模板:
void sth(T data)
{
System.out.println("Data size = ", sizeof(data));
}
我如何用Java做到这一点?
sizeof - 就像C sizeof;)
答案 0 :(得分:1)
这不是一件容易的事。你必须使用java的Instrumentation
。
Here就是一个例子。
答案 1 :(得分:0)
最后我使用了这段代码:
private int getSize(Object data) {
int size = 0;
try {
ByteArrayOutputStream bout = new ByteArrayOutputStream();
ObjectOutputStream stream = new ObjectOutputStream(bout);
stream.writeObject(data);
stream.close();
size = bout.size();
} catch (IOException e) {
System.err.println("error: " + e.getMessage());
}
return size;
}