java - 无法从其他类访问公共(public)实例

标签 java

我有两个实例:套接字和数据包在主类中作为公共(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);
    }

    }
    }

谢谢各位 friend !!

最佳答案

问题是您没有告诉 Java 在哪里可以找到 socketpacket 字段。如果您指定包含它们的类,它将解决您的问题。您的代码应如下所示:

UDP_Client.socket.send(UDP_Client.packet);

这可行,但您也可以在 enviar 文件中静态导入字段,这样您就不需要类名标识符。

import static package.to.UDP_Client.socket;
import static package.to.UDP_Client.packet;

然后您可以保留代码不变。

关于java - 无法从其他类访问公共(public)实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55478950/

相关文章:

java - 具有通用参数的接口(interface) - 无法编译

java - 不同的线程有不同的栈

java - 如何在 sonarqube 5.1+ 中添加自定义规则

java - Ruby 字符串到日期时间格式

java - 使用 Gson 将 JsonObject 解析为 List<Map<String, Object>>?

java - 如何将 Java Swagger 注释转换为 Swagger json 模式?

java - 如何将json文件添加到android项目

java - Android 混淆器不工作

Java 语音 API 教程?

java - 这是抽象类的实例化吗?