【发布时间】:2013-10-21 12:41:22
【问题描述】:
我有两个类,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都可以实现提供访问方法的接口。这在线程程序中可能不是一个好主意。
标签: java android generics reflection