java:类中的构造函数ranngeIpScanner不能应用于给定类型;
我是java新手,我有这个类:java:类中的构造函数ranngeIpScanner不能应用于给定类型;,java,Java,我是java新手,我有这个类: public class ranngeIpScanner { public static void main(String IpAddress) { String IpAddress = IpAddress; String[] octets = IpAddress.split("\\."); System.out.println(octets); //some more work he
public class ranngeIpScanner
{
public static void main(String IpAddress)
{
String IpAddress = IpAddress;
String[] octets = IpAddress.split("\\.");
System.out.println(octets);
//some more work here ...
}
}
我在另一个类中实例化了它,如下所示:
ranngeIpScanner scanIp = new ranngeIpScanner("192.198.1.200");
当我试图编译它时,我得到以下错误
Error:(45, 42) java: constructor ranngeIpScanner in class com.server.scanner.ranngeIpScanner cannot be applied to given types;
required: no arguments
found: java.lang.String
reason: actual and formal argument lists differ in length
如果我的问题是我不知道该找什么,请原谅
感谢Java中的,
main
方法与类的构造函数不同
上面的代码声明了main
方法,但没有定义构造函数。因此,Java隐式创建默认构造函数:
public ranngeIpScanner() { super(); }
请注意,此默认构造函数没有参数
当你写这行的时候
ranngeIpScanner scanIp = new ranngeIpScanner("192.198.1.200");
…您正在调用构造函数,而不是main
方法。因此,Java抱怨您试图给ranngeIpScanner
的构造函数提供一个字符串,默认情况下该构造函数不带参数
解决这个问题很简单:而不是
public static void main(String ipAddress)
你应该写
public ranngeIpScanner(String ipAddress)
这会将main
方法更改为类的构造函数
还有一个小提示:Java约定是以大写字母开始类名,以小写字母开始变量名。您的类RangeIpScanner
最好命名为RangeIpScanner
,变量IpAddress
应命名为IpAddress