1
一些调试后重构代码,我发现下面的东西在现有生产代码:静态听众
public class SomeTTS {
private static TTSSpeechListener mSpeechListener;
private static TTSBreakListener mBreakListener;
// more static (!!!) listeners
private String mPath;
public TTS(String path, TTSSpeechListener speechListener)
throws RuntimeException {
// ...
mSpeechListener = speechListener;
mBreakListener = null;
// more listeners set to null
// ...
}
// called from NATIVE code that I cannot change
private static void onReceiveSpeechData(byte[] samples) {
mSpeechListener.onSpeechData(samples);
}
// ...
}
课堂是一个机库(的Android,NDK,JNI)的包装。我无法访问本地库源。 (当然,你看到了这个问题:在我创建了SomeTTS
的第二个实例之后,第一个实例不再工作了。)我有点震惊:除了一个男生,我不会期望这样的错误。可能他们正在使用童工。或者更有可能的是,有人无法向他的经理解释演示和生产代码之间的区别。
无论如何,我必须让它工作。我有一些想法,但我现在可以提出的建议远非完美。任何想法如何重构它?