项目中常见的这种情况。。。。
1)父类定义了一些跨项目通用的变量或方法
3)然后第三个类出现了,他可以通过子类直接调用父类的方法和变量
但是,kotlin不行。。。。
找了一遭,截止目前,找到的兼容方案。。。。
1)子类定义同名方法或变量,然后指向父类
这么做,如果只是少的话还行,但是 如果稍微大点的项目,怎么可能这么做,不现实。。。。
看来 一定时间内还是得 保持java跟kotlin混编啊。。。。
1)父类定义了一些跨项目通用的变量或方法
public class TestParent extends CoreContext { public static final String KEY_LOGOUT = "logout"; public static Context getContext() { return ctx; } }2)之前的操作,java子类可以继承,然后定制单项目或模块内容
class TestChild extends TestParent{ }
3)然后第三个类出现了,他可以通过子类直接调用父类的方法和变量
class Thild { public void test(){ Logger.w(TestChild.KEY_LOGOUT); //通过子类调用父类变量 Logger.w(TestChild.getContext()); //通过子类调用父类方法 } }
但是,kotlin不行。。。。
找了一遭,截止目前,找到的兼容方案。。。。
1)子类定义同名方法或变量,然后指向父类
class TestChild : TestParent() { companion object { val KEY_LOGOUT = TestParent.KEY_LOGOUT fun getContext(): Context { return TestParent.getContext() } } }2)三方调用的是子类的,但实际指针最终指向父类。。。。
class Thrid { fun test() { Logger.w(TestChild.KEY_LOGOUT) Logger.w(TestChild.getContext()) } }
这么做,如果只是少的话还行,但是 如果稍微大点的项目,怎么可能这么做,不现实。。。。
看来 一定时间内还是得 保持java跟kotlin混编啊。。。。
--
senRsl
2020年08月25日20:16:56
senRsl
2020年08月25日20:16:56
没有评论 :
发表评论