Все компилируется и работает, но я понятия не имею, хороши ли моя функция hashcode () и equals ().
Ваш equals()
должен сравнивать int val
, а нерезультат toString()
сравниваемых объектов (this.val == other.val
).
Ваш hashCode()
выглядит хорошо, хотя я бы добавил к нему @Override
(то же самое с equals()
).
Кроме того, я хочу использовать create () для создания объектовкак это: getInstance().create("1234");
Глядя на его реализацию, он выглядит хорошо (т.е. будет работать в соответствии с вашими потребностями):
public Int create(String s) {
val = Integer.parseInt(s);
return this;
}
хотя я не думаю, что вы на самом делехочу использовать его с getInstance()
.Достаточно будет просто Int.create()
:
public static Int create(String s) {
val = Integer.parseInt(s);
return new Int(val);
}
Обратите внимание, что вам понадобится приватный конструктор.
Кроме того, как кто-то отметил в комментариях, рассмотрите возможность использования обобщений вместо наследования.