如何将矩阵变量调用到方法中

时间:2015-06-24 10:52:14

标签: java matrix methods serversocket

我正在学习socket编程,但我对这个矩阵有一点问题。我知道这是一个愚蠢的问题,但我不知道如何解决它

void data(){
    String[][] serv = { {"url", "url ip"}, {"url", "url ip"}, {"url", "url ip"} };
    System.out.println(server [1] [0]);
}

void process(String[][] serv){
    int i = 0;
    System.out.println("Processing...\n");
    try{
        for (i=0; i<3; i++) {

            System.out.println(serv [i] [0]);
            if (request.equals(serv [i] [0])) {
                response = serv [i] [1];
            }
        }
    }
    catch(Exception ex){
        System.out.println("Non trovato");
    }
}
public static void main(String[] args) throws IOException{
    final int port = 6000;
    ServerSocket listenSock = new ServerSocket(port);
    System.out.println("Server avviato. In ascolto su: " + listenSock.getLocalPort() + "\n");
    while(true){
        Socket socket = listenSock.accept();
        System.out.println("Stabilita connessione con: "+socket.getPort()+"\n");
        TCPServer server = new TCPServer(socket);
        server.getRequest();
        server.data();
        server.process();
        server.sendResponse();
        server.close();     
    }
}

当我编译javac时给我这条消息

TCPServer.java:88: error: method process in class TCPServer cannot be applied to given types; server.process(); ^ required: String[][] found: no arguments reason: actual and formal argument lists differ in length 任何解决它的想法?

2 个答案:

答案 0 :(得分:0)

您的server.process()方法采用String的双维数组。

main方法中,无需参数即可调用它,因此会出错。

答案 1 :(得分:0)

首先,您的数组必须是实例变量,而不是data()方法的本地变量:

String[][] serv;
void data(){
    serv = { {"url", "url ip"}, {"url", "url ip"}, {"url", "url ip"} };
    System.out.println(server [1] [0]);
}

然后您可以直接在process方法中使用它而不传递任何内容:

void process() {
   ...

您的主要方法可以保持不变。

另一种方法是从data()方法返回数组并将其传递给process()方法:

String[][] data(){
    String[][] serv = { {"url", "url ip"}, {"url", "url ip"}, {"url", "url ip"} };
    System.out.println(serv [1] [0]);
    return serv;
}

在你的主要方法中:

    server.process(server.data());

在此解决方案中,您不会更改process()方法中的任何内容。