class Node<E> {
private E data;
private Node<E> next;
Node(E data, Node<E> next) {
this.data = data;
this.next = next;
}
// .. getter-setters
}
为了统计创建了 Node 类的对象数量,我们可以在类中添加一个静态属性,并在创建新对象时递增它。
如何保持为每种类型创建的节点实例的计数?(例如,6 个节点实例是整数类型,4 个节点是浮点类型等)。
一种天真的方法可以是为每种类型添加静态变量(例如 IntCount、FloatCount),并根据传递给构造函数的数据实例对其进行递增。
class Node<E> {
private E data;
private Node<E> next;
private static int GlobalCount;
private static int IntCount, FloatCount;
static {
GlobalCount = IntCount = FloatCount = 0;
}
Node(E data, Node<E> next) {
this.data = data;
this.next = next;
GlobalCount++;
if(data instanceof Integer)
IntCount++;
else if (data instanceof Float)
FloatCount++;
}
}
目前这将只跟踪整数和浮点数的计数。如果要跟踪的类型数量增加,上述修改将不是一个好的解决方案。
我想知道是否有更好的方法来实现这一点。