我有兩個班,ClassOne
和ClassTwo
,該更新公共領域data
即訪問字段變量
public class ClassOne {
public byte[] data = new byte[10];
// Thread that updates data
}
和
public class ClassTwo {
public byte[] data = new byte[10];
// Thread that updates data
}
只有一個類及其相關的線程運行在任何時候,即應用程序在運行時檢測到數據源,並使用ClassOne
或ClassTwo
。我想分析一個名爲ParseMyData
的單獨課程中的數據,但有點困惑,因此設置該課程的最佳方法是讓ParseMyData
可以從ClassOne
或ClassTwo
訪問data
。
我目前嘗試使用泛型它做的,是這樣的:
public class ParseMyData<T> {
T classOneOrClassTwo;
ParseMyData(T t) {
classOneOrClassTwo = t;
}
public void parseIt() {
// Need to access data from either ClassOne or ClassTwo here, something like:
classOneOrClassTwo.data; // this obviously doesn't work
}
所以我的問題是如何從類ParseMyData
內訪問現場data
?我必須使用反射嗎?反射是唯一和最好的方法嗎?
新的泛型和反思,所以思想和指針非常讚賞。
「ClassOne」和「ClassTwo」都可以實現提供訪問方法的接口。這在線程程序中可能不是一個好主意。 – Meesh