Kotlin:如何在类中使用多个Generic?

时间:2017-06-06 14:19:54

标签: android kotlin

我试图将这个c#类转换为kotlin for android:

public class ChildItemCollection<P, T, C> : ICollection<T>
    where P : class
    where T : ChildItem<P>
    where C : class, ICollection<T>
{

    private P _parent;
    private C _collection;

    public ChildItemCollection(P parent, C collection)
    {
        this._parent = parent;
        this._collection = collection;
    }


...

}

public class ChildItemCollection<P, T> : ChildItemCollection<P, T, List<T>>
        where P : class
        where T : ChildItem<P>
    {
        #region Constructors
        public ChildItemCollection(P parent)
            : base(parent, new List<T>()) { }

        public ChildItemCollection(P parent, ICollection<T> collection)
            : this(parent)
        {
            foreach (T item in collection)
                this.Add(item);
        }
        #endregion Constructors
    }

我尝试了许多事情但没有成功。

我不明白如何使用&#34;其中&#34;线条。

1 个答案:

答案 0 :(得分:4)

在Kotlin中,您可以在声明中指定类型参数上限:

class ChildItemCollection<P, T : ChildItem<P>, C : Collection<T>> : ...

如果您有多个上限,则应使用where单独指定,请参阅another Q&A

此外,Kotlin没有class上限,因为值类型和类之间没有区别。