看到了退出的问题,但以22票接受的答案似乎没有编译。答案是
val hello = Hello()
val f = Hello::class.memberProperties.find { it.name == "world" }
f?.let {
it.isAccessible = true
val w = it.get(hello) as World
println(w.foo())
}
,但class
没有memberProperties
。我能找到的最接近的是members
,但它似乎没有返回正确的类型。我怎样才能得到私人领域";mEditor"?
val f = TextView::class.members.find {it.name == "mEditor"};
f?.let{
it.isAccessible=true;
val w = it.get(text2)
}
未解析的引用:isAccessible
TextView.java
@RemoteView
public class TextView extends View implements ViewTreeObserver.OnPreDrawListener {
....
/**
* {@link EditText} specific data, created on demand when one of the Editor fields is used.
* See {@link #createEditorIfNeeded()}.
*/
@UnsupportedAppUsage
private Editor mEditor;
您可以像使用java一样使用getDeclaredField
。
val f = TextView::class.java.getDeclaredField("mEditor")
f?.let {
it.isAccessible = true
Log.d("TYPE:",f.genericType.toString())
}
日志输出:
TYPE:: class android.widget.Editor