Java 构造函数不能应用于给定类型,不需要参数;找到int?

Java 构造函数不能应用于给定类型,不需要参数;找到int?,java,constructor,bluej,Java,Constructor,Bluej,我正在创建一个将罗马数字转换为阿拉伯数字的类,我的代码符合要求,但是当我尝试创建一个客户端类来测试它时,我得到了错误 “RomanNumerics类中的构造函数RomanNumerics无法应用于给定类型;必需:无参数;找到:int;原因:实际参数列表和形式参数列表长度不同” 这是我调用构造函数的代码 public class RomanConverter { public static void main(String[] args) { TextIO.putln("En

我正在创建一个将罗马数字转换为阿拉伯数字的类,我的代码符合要求,但是当我尝试创建一个客户端类来测试它时,我得到了错误 “RomanNumerics类中的构造函数RomanNumerics无法应用于给定类型;必需:无参数;找到:int;原因:实际参数列表和形式参数列表长度不同”

这是我调用构造函数的代码

public class RomanConverter {

   public static void main(String[] args) {

      TextIO.putln("Enter a Roman numeral and this will change it to an");
      TextIO.putln("arabic integer.  Enter an integer.")

      while (true) {

         TextIO.putln();
         TextIO.put("? ");


         while (TextIO.peek() == ' ' || TextIO.peek() == '\t')
            TextIO.getAnyChar();
         if ( TextIO.peek() == '\n' )
            break;


         if ( Character.isDigit(TextIO.peek()) ) {
            int arab = TextIO.getlnInt();
            try {
                RomanNumerals N = new RomanNumerals(arab);
                TextIO.putln(N.toInt() + " = " + N.toString());
            }
 public void RomanNumerals(int arabic){
        num = arabic;
    }
这是构造器

public class RomanConverter {

   public static void main(String[] args) {

      TextIO.putln("Enter a Roman numeral and this will change it to an");
      TextIO.putln("arabic integer.  Enter an integer.")

      while (true) {

         TextIO.putln();
         TextIO.put("? ");


         while (TextIO.peek() == ' ' || TextIO.peek() == '\t')
            TextIO.getAnyChar();
         if ( TextIO.peek() == '\n' )
            break;


         if ( Character.isDigit(TextIO.peek()) ) {
            int arab = TextIO.getlnInt();
            try {
                RomanNumerals N = new RomanNumerals(arab);
                TextIO.putln(N.toInt() + " = " + N.toString());
            }
 public void RomanNumerals(int arabic){
        num = arabic;
    }

您正在尝试使用未定义的重载的构造函数实例化
罗马数字
对象

这个

实际上是一个方法,而不是构造函数。您需要这样定义构造函数:

public RomanNumerals(int arabic){
    // Initialization
}

这不是一个构造函数:

public void RomanNumerals(int arabic)
这是一种称为
罗马数字
的方法,它采用
整数
。无参数构造函数是Java为您创建的默认构造函数


您只需删除
void
,即可解决此问题。

此消息意味着预期的构造函数是RomanNumerics(),没有任何参数,并且未定义实际的构造函数RomanNumerics(int)。换句话说,形式参数列表为空,但实际参数列表为int

类RomanNumerics中的构造函数RomanNumerics不能应用于 给定类型;必需:无参数;发现:int;原因:实际和 形式参数列表长度不同

构造函数应该是这样的

public class MyClass {
  public MyClass(int x, double y) {
    ...
  }
}
请注意,没有返回参数

由于return参数,您所标识的构造函数实际上是一个方法