public class Foo { public static var param1 = 20 public var param2 = 10 }
main(){ let obj = Foo() let info = TypeInfo.of(obj) let staticVarInfo = info.getStaticVariable("param1") let instanceVarInfo = info.getInstanceVariable("param2")
println("成员变量初始值")
print("Foo 的静态成员变量 ${staticVarInfo} = ") println((staticVarInfo.getValue() as Int64).getOrThrow())
print("obj 的实例成员变量 ${instanceVarInfo} = ") println((instanceVarInfo.getValue(obj) as Int64).getOrThrow())
public class Foo { public let _p1: Int64 = 1 public prop p1: Int64 { get() { _p1 } } public var _p2: Int64 = 2 public mut prop p2: Int64 { get() { _p2 } set(v) { _p2 = v } } }
main(){ let obj = Foo() let info = TypeInfo.of(obj) let instanceProps = info.instanceProperties.toArray() println("obj 的实例成员属性包含${instanceProps}") let PropInfo1 = info.getInstanceProperty("p1") let PropInfo2 = info.getInstanceProperty("p2")
println((PropInfo1.getValue(obj) as Int64).getOrThrow()) println((PropInfo2.getValue(obj) as Int64).getOrThrow()) if (PropInfo1.isMutable()) { PropInfo1.setValue(obj, 10) } if (PropInfo2.isMutable()) { PropInfo2.setValue(obj, 20) } println((PropInfo1.getValue(obj) as Int64).getOrThrow()) println((PropInfo2.getValue(obj) as Int64).getOrThrow()) }
public class Foo { public static func f1(v0: Int64, v1: Int64): Int64 { return v0 + v1 } }
main(): Unit { var num = 0 let intInfo = TypeInfo.of<Int64>() let funcInfo = TypeInfo.of<Foo>().getStaticFunction("f1", intInfo, intInfo) num = (funcInfo.apply(TypeInfo.of<Foo>(), [1, 2]) as Int64).getOrThrow() println(num) }