Java 構文にいくつかの変更を加えたいと思います。たとえば、演算子「+」を使用してベクトルを追加したいとします。だから私はこのコードが欲しい:
public class Vector2 {
public float x, y;
public Vector2(float x, float y) {this.x = x;this.y = y;}
public String toString() {...}
public static Vector2 operator+(Vector2 a, Vector2 b) {
return new Vector2(a.x + b.x, a.y + b.y);
}
public static void main(String[] args) {
Vector2 a = new Vector2(3, 6);
Vector2 b = new Vector2(2, 8);
System.out.println(a + b);
}
}
この標準の Java コードに変換されます。
public class Vector2 {
public float x, y;
public Vector2(float x, float y) {this.x = x;this.y = y;}
public String toString() {...}
public static Vector2 operator_plus(Vector2 a, Vector2 b) {
return new Vector2(a.x + b.x, a.y + b.y);
}
public static void main(String[] args) {
Vector2 a = new Vector2(3, 6);
Vector2 b = new Vector2(2, 8);
System.out.println(Vector2.operator_plus(a, b));
}
}
独自のコンパイラを作成するのと同じように、Java 構文を簡単に拡張するための適切で安全な方法はありますか?
(演算子のオーバーロードだけでなく、本質的に Java 構文を拡張するための優れた方法でもあります。)