2013-01-13 37 views
1

我新的Java和我试图做出的Minecraft国防部,但我想不通我怎么能解决这个错误,没有合适的构造函数:错误:发现

src\minecraft\net\minecraft\src\ThreadConnectToServer.java:39: error: no suitabl 
e constructor found for Packet2ClientProtocol(int,Minecraft,String,String,int) 
     GuiConnecting.getNetClientHandler(this.connectingGui).addToSendQueue 
(new Packet2ClientProtocol(51, GuiConnecting.func_74254_c(this.connectingGui), t 
his.Username, this.ip, this.port)); 

^ 

constructor Packet2ClientProtocol.Packet2ClientProtocol(int,String,int) is n 
ot applicable 
    (actual and formal argument lists differ in length) 
constructor Packet2ClientProtocol.Packet2ClientProtocol() is not applicable 
    (actual and formal argument lists differ in length) 
1 error 

这是我的代码:

package net.minecraft.src; 

import java.net.ConnectException; 
import java.net.UnknownHostException; 

public class ThreadConnectToServer extends Thread 
{ 

/** The IP address or domain used to connect. */ 
    final String ip; 

    /** The port used to connect. */ 
    final int port; 

    /** A reference to the GuiConnecting object. */ 
    final GuiConnecting connectingGui; 

final String Username; 

    ThreadConnectToServer(GuiConnecting par1GuiConnecting, String par2Str, int par3) 
    { 
     this.connectingGui = par1GuiConnecting; 
     this.ip = par2Str; 
     this.port = par3; 
     String Username = Info.Username; 
    } 

    public void run() 
    { 
     try 
     { 
      GuiConnecting.setNetClientHandler(this.connectingGui, new NetClientHandler(GuiConnecting.func_74256_a(this.connectingGui), this.ip, this.port)); 

      if (GuiConnecting.isCancelled(this.connectingGui)) 
      { 
       return; 
      } 

      GuiConnecting.getNetClientHandler(this.connectingGui).addToSendQueu(new Packet2ClientProtocol(51, GuiConnecting.func_74254_c(this.connectingGui), this.Username, this.ip, this.port)); 
      } 
      catch (UnknownHostException var2) 
      { 
       if (GuiConnecting.isCancelled(this.connectingGui)) 
       { 
        return; 
       } 

     GuiConnecting.func_74249_e(this.connectingGui).displayGuiScreen(new GuiDisconnected("connect.failed", "disconnect.genericReason", new Object[] {"Unknown host \'" + this.ip + "\'"})); 
    } 
    catch (ConnectException var3) 
    { 
     if (GuiConnecting.isCancelled(this.connectingGui)) 
     { 
      return; 
     } 

     GuiConnecting.func_74250_f(this.connectingGui).displayGuiScreen(new GuiDisconnected("connect.failed", "disconnect.genericReason", new Object[] {var3.getMessage()})); 
    } 
    catch (Exception var4) 
    { 
     if (GuiConnecting.isCancelled(this.connectingGui)) 
     { 
      return; 
     } 

     var4.printStackTrace(); 
     GuiConnecting.func_74251_g(this.connectingGui).displayGuiScreen(new GuiDisconnected("connect.failed", "disconnect.genericReason", new Object[] {var4.toString()})); 
     } 
    } 
} 

这是什么问题我试图使它的字符串“用户名”重定向到另一个类。

回答

1

Java编译器会提醒您不能构建一个Packet2ClientProtocol对象,因为你的构造函数调用不符合任何已知的构造。

具体来说,编译器发现两个构造函数:

Packet2ClientProtocol.Packet2ClientProtocol(int,String,int) 
Packet2ClientProtocol.Packet2ClientProtocol() 

,但您的来电:

new Packet2ClientProtocol(51, GuiConnecting.func_74254_c(this.connectingGui), this.Username, this.ip, this.port) 

匹配没有。

+0

谢谢!这解决了这个问题。 – Irrationality

1
new Packet2ClientProtocol(51, GuiConnecting.func_74254_c(this.connectingGui), this.Username, this.ip, this.port) 

该错误表明这样的构造函数不存在。

只有2个选项

Packet2ClientProtocol.Packet2ClientProtocol(int,String,int) 
Packet2ClientProtocol.Packet2ClientProtocol() 
+0

我试图添加一个虚拟构造函数,但我不断收到语法错误,尽管我确信没有。 – Irrationality

+0

@ user1973458一个虚拟构造函数不会帮助。你显然打算让代码去做一些事情。 –

+0

@ user1973458你可能错过了一个''''或者一个争论? –