[英]Java Inner-Class direclty implemented with Parameter Constructor?
通常我按如下方式實現我的Runnables(直接實現內部類):
Runnable updateRunnable = new Runnable() {
public void run() {
}
}
Java中是否有通過以下方式在構造函數中傳遞任何參數來實現Class的任何工作方式?
Runnable updateRunnable = new Runnable(locale) {
Locale locale = null;
public Runnable(Locale locale){
this.locale = locale
}
public void run() {
}
};
==>我的目標是擁有一個直接實現的內部類,但是我想傳遞一個參數。
做到這一點的最佳解決方案是什么(上面的示例似乎不起作用????)是唯一與getter setter一起工作或將類實現為“常規”內部類的唯一可能性(未實現不透明)。
非常感謝你! 一月
您可以執行類似的操作:
final Locale locale;
Runnable r = new Runnable() {
public void run() {
// have direct access to variable 'locale'
}
};
要注意的重要一點是,您傳遞的Locale
必須是final
Locale
,以便您能夠執行此操作。
您必須以某種方式初始化locale
才能進行編譯。
另一個選擇是使用靜態內部類。
public class MyClass {
public void someMethod() {
Runnable runnable = new MyRunnable(someLocaleHere);
}
private static class MyRunnable implements Runnable {
Locale locale = null;
private MyRunnable(Locale locale) {
this.locale = locale;
}
public void run() {
}
}
}
根據您對事物的看法,此方法的缺點是MyRunnable無法像這里描述的其他技術一樣訪問最終的局部變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.