java - Kotlin 中类的静态对象列表

标签 java kotlin

Static List of all Objects of Class
如果可以的话,这可以与 Kotlin 一起使用吗?您能提供一个示例吗?

现在我的界面没有列表,我正在两个实现中创建一个伴随对象。但不知何故感觉不对......请帮助我解决这个问题:)

我现在有四种方法可以做到这一点,我将在这里展示其中两种,因为第四种方法需要更复杂的UML。也许这实际上就是你的做法,如果不是你们中的一个人有一个想法;)

我的 Kotlin 代码方法一:

interface IMyClass {
}

class MyClassOne : IMyClass {
     companion object {
        var myClassList: ArrayList<IMyClass> = ArrayList()
    }
    constructor() {
        println(myClassList)
    }
}

class MyClassTwo : IMyClass {
     companion object {
        var myClassList: ArrayList<IMyClass> = ArrayList()
    }
    constructor() {
        println(myClassList)
    }
}

我的 Kotlin 代码方法二:

interface IMyClass {
    companion object {
       var myClassList: ArrayList<IMyClass> = ArrayList()
    }
}

class MyClassOne : IMyClass {
    constructor() {
        println(IMyClass.myClassList)
    }
}

class MyClassTwo : IMyClass {
    constructor() {
        println(IMyClass.myClassList)
    }
}

我的 Kotlin 代码方法三:

interface IMyClass {
    var myClassList: ArrayList<IMyClass>
}

class MyClassOne {
    companion object : IMyClass{
        override var myList: ArrayList<IMyClass>
            get() = TODO("not implemented") //To change initializer of created properties use File | Settings | File Templates.
            set(value) {}
    }
}

class MyClassTwo {
companion object : IMyClass{
        override var myList: ArrayList<IMyClass>
            get() = TODO("not implemented") //To change initializer of created properties use File | Settings | File Templates.
            set(value) {}
    }
}

我的 Java 代码:

public interface IMyClass {
 List<IMyClass> myClassList = new ArrayList<>();
}

public class MyClassOne implements IMyClass {
    public MyClassOne() {
        System.out.println(myClassList );
    }
}

public class MyClassTwo implements IMyClass {
    public MyClassTwo() {
        System.out.println(myClassList);
    }
}

最佳答案

我个人决定选择第三种选择:

interface IMyClass {
    var myClassList: ArrayList<IMyClass>
}

class MyClassOne {
    companion object : IMyClass{
        override var myList: ArrayList<IMyClass>
            get() = TODO("not implemented") //To change initializer of created properties use File | Settings | File Templates.
            set(value) {}
    }
}

class MyClassTwo {
companion object : IMyClass{
        override var myList: ArrayList<IMyClass>
            get() = TODO("not implemented") //To change initializer of created properties use File | Settings | File Templates.
            set(value) {}
    }
}

关于java - Kotlin 中类的静态对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56577698/

相关文章:

java - 使用 JBOSS_HOME 时 log4j 不记录

java - 使用正则表达式验证 mysql 语句

java - 初始化后向 Jtable 添加 header

Java对象创建语法效率?

android - android绑定(bind)数据的通用形式

kotlin - 在 Kotlin 的泛型中扩展类

android - 获取首选项在 fragment 中不起作用

android - 添加/替换 fragment 的任何代码改进

gradle - Kotlin Gradle插件:apiVersion与languageVersion

java - 如何在程序运行时显示实时变化的文本数据?