伴生对象和静态成员

    1. fun main(args: Array<String>) {
    2. val latitude = Latitude.ofDouble(3.0)
    3. val latitude2 = Latitude.ofLatitude(latitude)
    4. println(Latitude.TAG)
    5. }
    6. class Latitude private constructor(val value: Double){
    7. // companion object 伴生对象
    8. companion object{
    9. @JvmStatic // 可在Java代码中调用
    10. fun ofDouble(double: Double): Latitude{
    11. return Latitude(double)
    12. }
    13. fun ofLatitude(latitude: Latitude): Latitude{
    14. return Latitude(latitude.value)
    15. }
    16. @JvmField // 可在Java代码中访问
    17. val TAG: String = "Latitude"
    18. }
    19. }

    Java中调用

    1. public class StaticJava {
    2. public static void main(String... args) {
    3. Latitude latitude = Latitude.ofDouble(3.0);
    4. System.out.println(Latitude.TAG);
    5. }
    6. }