50,534
社区成员
发帖
与我相关
我的任务
分享
public class TashiFinger
{
private static SerialConnect _SerialConnect = null;
private static CommandCall _SensorControl = null;
}
public class SerialConnect
{
private SerialPort serialPort = null;
}
public class SerialPort {
private static final String TAG = "SerialPort";
private FileInputStream mFileInputStream;
private FileOutputStream mFileOutputStream;
public InputStream getInputStream() {
return mFileInputStream;
}
public OutputStream getOutputStream() {
return mFileOutputStream;
}
}
Class c2 = Class.forName("com.suprema.www.unifingerui.SerialConnect");
Field serialPort = c2.getDeclaredField("serialPort");
InputStream inputStream = serialPort.getInputStream();//这样是错的
TashiFinger tashiFinger = new TashiFinger();
Class<? extends TashiFinger> aClass = tashiFinger.getClass();
Field _SerialConnect = aClass.getDeclaredField("_SerialConnect");
if (!_SerialConnect.isAccessible()) {
_SerialConnect.setAccessible(true);
}
SerialConnect o = (SerialConnect)_SerialConnect.get(tashiFinger);
System.out.println(o);
if (o != null) {
Class<? extends SerialConnect> aClass1 = o.getClass();
Field serialPort = aClass1.getDeclaredField("serialPort");
if (!serialPort.isAccessible()) {
serialPort.setAccessible(true);
}
SerialPort o1 = (SerialPort)serialPort.get(o);
System.out.println(o1);
if (o1 != null) {
Class<? extends SerialPort> aClass2 = o1.getClass();
Method method = aClass2.getDeclaredMethod("getInputStream");
if (!method.isAccessible()) {
method.setAccessible(true);
}
InputStream stream = (InputStream)method.invoke(o1);
System.out.println(stream);
}
}
一层层剥就好了
下次注意哈 禁止套娃