Java 请参阅从方法参数对象内部包含对象?
我不知道如何表述这个问题在技术上是正确的,但假设我有一个对象Java 请参阅从方法参数对象内部包含对象?,java,android,inner-classes,anonymous-class,parameter-object,Java,Android,Inner Classes,Anonymous Class,Parameter Object,我不知道如何表述这个问题在技术上是正确的,但假设我有一个对象(外部),该对象的方法将另一个对象(内部)作为参数-我如何从内部引用外部 为了阐明我的意思,下面是一个使用AndroidEditText和TextWatcher实现的示例: EditText myEditText = getEditText(); myEditText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextC
(外部)
,该对象的方法将另一个对象(内部)
作为参数-我如何从内部引用外部
为了阐明我的意思,下面是一个使用AndroidEditText
和TextWatcher
实现的示例:
EditText myEditText = getEditText();
myEditText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
// How can I refer to myEditText here in a more generic way than
// using myEditText directly?
}
});
在本例中,我当然可以在TextWatcher
实现中使用myEditText
。但我想知道的是,在这种情况下,是否有更通用的方法从“内部”
获取“外部”
对象
我知道可以使用MyClass。这
处理匿名内部类时,但在这种情况下不起作用。TextWatcher
接口不会将视图
传递到它的方法中,比如OnClickListener
接口,如果你这么想的话,因此,使用直接引用几乎可以做到最好,除非您希望创建自己的类来实现TextWatcher
,该类的方法向接口方法添加View
参数。为什么不在该方法中使用myEditText
?鉴于myEditText
是这里唯一相关的变量,现在还不清楚您想要什么更通用的方式。@JonSkeet我正在考虑一种类似于MyClass的构造。这个
,但在这种情况下会起作用。这并不是说我不想使用myEditText,只是我想知道是否有更通用的方法可以使用,我不知道,但我想不是。这并不能回答为什么你不想使用有效的构造,也就是说,只使用myEditText
。TextWatcher
界面不会将视图
传递到它的方法中,比如OnClickListener
界面,如果这是您所想的,那么使用直接引用就可以了,除非您想创建自己的类来实现TextWatcher
,该类的方法向接口方法添加View
参数。为什么不想在方法中使用myEditText
?鉴于myEditText
是这里唯一相关的变量,现在还不清楚您想要什么更通用的方式。@JonSkeet我正在考虑一种类似于MyClass的构造。这个
,但在这种情况下会起作用。这并不是说我不想使用myEditText
,只是我想知道是否有更通用的方法来实现这一点,我不知道,但我想不是。这并不能回答为什么你不想使用有效的结构,即只使用myEditText
。