multithreading - Unable to get Integer Value of Variable Stored in Java Thread Local Object -
i trying integer value of thread local object in code below, keeps throwing error. however, when try display string, displays.
my question: how can achieve extracting integer value?
note: parsing string in code below doesn't work
package ids; import java.io.ioexception; import java.sql.connection; import java.sql.drivermanager; import java.sql.resultset; import java.sql.statement; import java.util.random; import javax.swing.swingworker; import jpcap.*; import jpcap.packet.packet; public class interfacethread implements runnable { threadlocal myinterfacenumber = new threadlocal(); interfacethread() { } interfacethread(int interfacenumber) { myinterfacenumber.set(interfacenumber); system.out.println("check: " + myinterfacenumber.get()); } @override public void run() { string intnum = (string) myinterfacenumber.get(); int interfacetoprint = integer.parseint(intnum); system.out.println("interface: " + interfacetoprint); messages msg = new messages(); printer print = new printer(); try { //open selected interface jpcapcaptor captor = jpcapcaptor.opendevice(ids.interfaces[interfacetoprint], 65535, true, 5000); system.out.println("interface dlink name: " + ids.interfaces[interfacetoprint].description); // print.textareaappend("traffic on interface "+interfacetoprint+" being sniffed\n"); while (mainframe.stopsniffing == false) { captor.processpacket(-1, new printer()); } //captor.looppacket(-1, new printer()); captor.close(); } catch (ioexception ex) { msg.errormessages("interface " + interfacetoprint + " encountered error: " + ex); } } public void start(int interfacenumber) { interfacethread interfacet = new interfacethread(interfacenumber); thread thread = new thread(interfacet); thread.start(); } }
i suggest use generics simplify code
private final threadlocal<integer> int = new threadlocal<>(); // read integer = int.get(); // write int.set(i);
Comments
Post a Comment