我试图将这个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;线条。
答案 0 :(得分:4)
在Kotlin中,您可以在声明中指定类型参数上限:
class ChildItemCollection<P, T : ChildItem<P>, C : Collection<T>> : ...
如果您有多个上限,则应使用where
单独指定,请参阅another Q&A。
此外,Kotlin没有class
上限,因为值类型和类之间没有区别。