[英]Define a local variable in Java: Integer a = 100, where is “100” stored?
[英]Unable to get Integer Value of Variable Stored in Java Thread Local Object
我正在嘗試獲取下面的代碼中的線程局部對象的整數值,但它總是拋出錯誤。 但是,當我嘗試將其顯示為字符串時,它將顯示。
我的問題:如何獲得整數值?
注意:無法解析以下代碼中的字符串
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+" Now 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();
}
}
我建議您使用泛型來簡化代碼
private final ThreadLocal<Integer> int = new ThreadLocal<>();
// to read
Integer i = int.get();
// to write
int.set(i);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.