[英]Can not access public instances from other class
我有兩個實例:socket 和 packet 在主類中作為 public,但我無法從其他類訪問它們,並且它們在同一個包中。
我得到:找不到他們兩個的符號。
public class enviar extends TimerTask {
public void run() {
socket.send(packet);
}
}
public class UDP_Client {
public static DatagramSocket socket;
static InetAddress address;
public static DatagramPacket packet;
public static void main(String args[]){
final int puerto = 3000;
try{
socket = new DatagramSocket();
address = InetAddress.getByName("localhost");
byte[] buf = payload.MSG.getBytes();
packet = new DatagramPacket(buf, buf.length, address , puerto);
while(true){
Timer timer = new Timer();
timer.schedule(new enviar(), 0, 50);
}
}catch(IOException e){
System.out.println(e);
}
}
}
謝謝小伙伴!!
問題是您沒有告訴 Java 在哪里可以找到socket
和packet
字段。 如果您指定包含它們的類,它將解決您的問題。 您的代碼應如下所示:
UDP_Client.socket.send(UDP_Client.packet);
這會起作用,但您也可以靜態導入enviar
文件中的字段,這樣您就不需要類名標識符。
import static package.to.UDP_Client.socket;
import static package.to.UDP_Client.packet;
然后你可以保持你的代碼原樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.