3
根据Swift官方文档(Swift extension doc),Swift扩展看起来像Java枚举。什么是Java相当于Swift的“扩展”?
Swift extensions:
extension Double {
var km: Double { return self * 1_000.0 }
var m: Double { return self }
var cm: Double { return self/100.0 }
var mm: Double { return self/1_000.0 }
var ft: Double { return self/3.28084 }
}
let oneInch = 25.4.mm
print("One inch is \(oneInch) meters")
// prints "One inch is 0.0254 meters"
我试图在Java中表示这一点,并提出了以下代码。 这是Java的代码是否正确?还是有任何其他方式来表达这一点?
public enum LengthMetric {
km(1.0e3), mm(1.0e-3), m(1.0e0);
private final double number;
LengthMetric(double number) {
this.number = number;
}
double getValue(double value) {
return value * number;
}
public static void main(String[] args) {
double originalValueInMeters = 3.0;
System.out.printf("Your value on %s is %f%n", km,
km.getValue(originalValueInMeters));
double oneInch = mm.getValue(25.4);
System.out.printf("One inch on %s is %f%n", m,
oneInch);
}
}
Your value on km is 3000.000000
One inch on m is 0.025400
斯威夫特有定期枚举。这只是将新东西添加到Double类型中。与枚举没有太大关系。 – Mints97
在Java中,考虑[tag:jscience]'javax.measure.converter'进行单位转换。 – trashgod