我们有2个类BaseClassA和ClassB。 BaseClassA有多个子类,如下所示
SubClassA1.swift
df.withColumn("arr", when(size(col("arr")) == 0, lit(None)).otherwise(col("arr") ) ).show()
ClassB.swift
class SubClassA1 : BaseClassA {
private var someFlag = false
private var context: SomeContextClass?
func setContext(_ context: SomeContextClass) {
}
}
我们希望外界始终使用ClassB来创建SubClassA1的对象,而不是直接创建SubClassA1的对象。有没有办法确保只有ClassB可以实例化SubClassA1的对象?
答案 0 :(得分:0)
在SubClassA1 init方法中,调用
Thread.callStackSymbols
它返回一个字符串数组,其中包含线程堆栈的详细信息。数组中的第二个字符串将为您提供调用init方法的类和方法的详细信息。因此,如果未从SubClassB1调用它,则可以生成断言。