java与kotlin混合编程

1 篇文章 0 订阅

  被java的NPE拆腾得怀疑人生,因而思考是否可以使用号称NPE安全的神语言kotlin,但又不能完全抛弃java,所以两者是否可以混编,特地尝试了一下,使用gradle成功搭建,同时实现两者互调。

项目结构

项目结构

HelloJava
package com.kidshelloworld.jk;

public class HelloJava {
	public static void main(String[] args) {
		System.out.println(new Person("hello", 30));
		System.out.println(new Human());
	}
}
Person
package com.kidshelloworld.jk;

public class Person {
	private String name;
	private int age;

	public Person() {
	}

	public Person(String name, int age) {
		this.name = name;
		this.age = age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	@Override
	public String toString() {
		return "Person{" + "name='" + name + '\'' + ", age=" + age + '}';
	}
}

HelloKotlin
package com.kidshelloworld.jk

fun main() {
    println(Person("xixi", 10))
    println(Human())
}
Human
package com.kidshelloworld.jk

class Human {
    var sex: Int = 1

    override fun toString(): String {
        return "Human(sex=$sex)"
    }


}
gradle.properties
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.61"
    }
}

apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'kotlin'

group 'com.kidshelloworld'
version '1.0.0-SNAPSHOT'

sourceCompatibility = 1.8
targetCompatibility = 1.8
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'

compileJava {
    options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" << "-Xlint:none" << "-parameters"
    options.fork = true
    options.forkOptions.executable = 'javac'
    options.incremental = true
}

sourceSets {
    main.java.srcDirs = ['src/main/java']
    main.kotlin.srcDirs = ['src/main/kotlin']
    main.resources.srcDirs = ['src/main/resources']
}

repositories {
    mavenCentral()
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.61"
    testCompile group: 'junit', name: 'junit', version: '4.12'
    compile "org.jetbrains.kotlin:kotlin-reflect:1.3.61"
    testCompile "org.jetbrains.kotlin:kotlin-test:1.3.61"
    testCompile "org.jetbrains.kotlin:kotlin-test-junit:1.3.61"
}

参考资料

1. kotlin using gradle

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值