整数类型的同义词?

时间:2016-04-08 09:58:03

标签: java

我正在编写一个实现某些程序分析的Java程序。作为其中的一部分,我想要一种在我正在分析的程序中表示“值”的类型。就我的目的而言,价值观只是整数。但是,我不想在我的代码中使用int / Integer类型,因为int / Integer不是一个非常具有描述性的名称。我宁愿写Value。然后我会喜欢来写

class Value extends Integer {}

完成。但这不起作用,因为Integer是最后一堂课。所以我目前的解决方案是给我的Value类一个int字段,然后手动实现所有各种标准方法:

class Value {
  int val;
  public String toString() {...}
  public int hashCode() {...}
  public boolean equals(...) {...}
  ...
}

当我真的只是寻找行为类似于Integer但具有更具描述性的名称的类时,这感觉有些过分。

我有什么选择?

1 个答案:

答案 0 :(得分:1)

您几乎可以在代理中包装任何内容:

class Value<T extends Number> extends Number {

    final T v;

    public Value(T v) {
        this.v = v;
    }

    @Override
    public int intValue() {
        return v.intValue();
    }

    @Override
    public long longValue() {
        return v.longValue();
    }

    @Override
    public float floatValue() {
        return v.floatValue();
    }

    @Override
    public double doubleValue() {
        return v.doubleValue();
    }

    @Override
    public String toString() {
        return v.toString();
    }

    @Override
    public int hashCode() {
        return v.hashCode();
    }

    @Override
    public boolean equals(Object obj) {
        return v.equals(obj);
    }

}