Sizeof未知类型对象

时间:2010-10-30 21:40:04

标签: java templates sizeof

我必须获得我不知道的类型的对象的大小。这是我想要实现的模板:

 void sth(T data)
 {
    System.out.println("Data size = ", sizeof(data));
 }

我如何用Java做到这一点?

sizeof - 就像C sizeof;)

2 个答案:

答案 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;
    }