没有经验的java用户请求类的建议

Ram*_*san 1 java class

我创建了一个发送单个数据报包的类,该数据包由另一个程序成功接收.

import java.net.*;

public class UDPServer {
    public static void main(final String args[]) throws Exception {
        final String sendID = "level1";
        final int val = 2;
        final DatagramSocket serverSocket = new DatagramSocket(7474);
        byte[] sendData = new byte[1024];
        final InetAddress IPAddress = InetAddress.getLocalHost();
        final String sentence = sendID + new String(" ")
                + new Integer(val).toString();
        final String capitalizedSentence = sentence.toUpperCase();
        sendData = capitalizedSentence.getBytes();
        final DatagramPacket sendPacket = new DatagramPacket(sendData,
                sendData.length, IPAddress, 7470);
        serverSocket.send(sendPacket);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是如何从另一个代码运行此代码,为sendID和传递变量val.这最终将从游戏向音频编程软件发送信息,以创建算法分数.

如果代码错误/格式错误,请道歉,我不是交易程序员!

谢谢.

The*_*ook 6

Juste使用两个参数创建方法Send

public class UDPServer {
    public void send(final String sendID, final int val) throws Exception {

            final DatagramSocket serverSocket = new DatagramSocket(7474);
            byte[] sendData = new byte[1024];
            final InetAddress IPAddress = InetAddress.getLocalHost();
            final String sentence = sendID + new String(" ")
                  + new Integer(val).toString();
            final String capitalizedSentence = sentence.toUpperCase();
            sendData = capitalizedSentence.getBytes();
            final DatagramPacket sendPacket = new DatagramPacket(sendData,
                  sendData.length, IPAddress, 7470);
            serverSocket.send(sendPacket);
     }
}
Run Code Online (Sandbox Code Playgroud)

而现在来自另一个班级

UDPServer server = new UDPServer();
server.send("level1", 2);
Run Code Online (Sandbox Code Playgroud)

您的代码几乎没有评论:

避免使用带有首字母大写的变量(即IPAddress).通常,类以大写字母开头,而不是变量.

你可以简化:

byte[] sendData = new byte[1024];
sendData = capitalizedSentence.getBytes();
Run Code Online (Sandbox Code Playgroud)

通过

byte[] sendData = capitalizedSentence.getBytes();
Run Code Online (Sandbox Code Playgroud)

final String sentence = sendID + new String(" ")
                  + new Integer(val).toString();
Run Code Online (Sandbox Code Playgroud)

通过

final String sentence = String.format("%s %d", sendID, val);
Run Code Online (Sandbox Code Playgroud)