如何在Java中调用另一个静态构造函数?
在Java中如何调用这些可选的静态构造函数 我想使用newFromLatLong格式创建一个Location对象,但不知道如何创建如何在Java中调用另一个静态构造函数?,java,constructor,static,Java,Constructor,Static,在Java中如何调用这些可选的静态构造函数 我想使用newFromLatLong格式创建一个Location对象,但不知道如何创建 public class Location { public final double x; public final double y; public Location(double x, double y) { this.x = x; this.y = y; } public stat
public class Location {
public final double x;
public final double y;
public Location(double x, double y) {
this.x = x;
this.y = y;
}
public static Location newFromPoint(Point point, Location origin,
double scale) {
return new Location(point.x / scale + origin.x, origin.y - point.y
/ scale);
}
public static Location newFromLatLon(double lat, double lon) {
double y = (lat - CENTRE_LAT) * SCALE_LAT;
double x = (lon - CENTRE_LON)
* (SCALE_LAT * Math.cos((lat - CENTRE_LAT) * DEG_TO_RAD));
return new Location(x, y);
}
您有静态方法来创建对象,因此您可以在类本身上调用它们,这将返回一个
位置
对象。您可以将其用于其他用途
Location location = Location.newFromLatLon(1.1, 1.2);
考虑使用生成器模式创建位置对象。为了避免重复代码,我建议使用Lombok
@Builder
注释:
也可以考虑使用相同的<代码>位置<代码>对象作为<代码>新的NeXFooSt/<代码>方法的参数:
公共静态位置newFromPoint(点、位置原点、,
双刻度){
返回新位置(点.x/比例+原点.x,原点.y-点.y
/规模);
}
也许您需要查看域定义。这些是类方法,您可以像调用其他类方法一样调用它们。我必须在现有位置上使用它们吗?为什么它们看起来像构造函数呢?这些静态方法不是构造函数(构造函数是非静态的,没有返回类型)。这些方法用于创建新对象。它们可以被调用为
Location=Location.newFromLocation(lat,lon)
顺便说一句,术语是静态构建器方法。