簡體   English   中英

無法從其他類訪問公共實例

[英]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 在哪里可以找到socketpacket字段。 如果您指定包含它們的類,它將解決您的問題。 您的代碼應如下所示:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM