Как переписать js в java, (instanceof использование, заменить overload)? - PullRequest
0 голосов
/ 13 июля 2020

Допустим, у нас есть такая функция в js

this.add = function (x, y) {
        if (x instanceof Vector2d) {
            this.x += x.x;   
            this.y += x.y;
            return this;
        }
        this.x += x;
        this.y += y;
        return this;
    };

Нужно ли мне перегружать ее в java, как:

    public Vector2D add(Vector2D other) {
        this.x += other.x;
        this.y += other.y;
        return new Vector2D(this.x, this.y);
    }
    public Vector2D add(double number) {
        this.x += number;
        this.y += number;
        return new Vector2D(this.x, this.y);
    }

Или есть что-то лучше / более умный / компактный способ делать такие вещи?

1 Ответ

1 голос
/ 13 июля 2020
public class Vector2D {
    private double x;
    private double y;

    //...

    public Vector2D add(Vector2D other) {
        this.x += other.x;
        this.y += other.y;
        return this;
    }
    public Vector2D add(double x, double y) {
        this.x += x;
        this.y += y;
        return this;
    }

    //...
}

Вы можете возвращать this вместо создания нового Vector2D объекта каждый раз, когда вызываете метод, точно так же, как вы это делали в версии js.

Но я чувствую это тип вопроса лучше подходит для сообщества ревью кода: https://codereview.stackexchange.com

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...