【问题标题】:Java chained constructor calling error [duplicate]Java链式构造函数调用错误[重复]
【发布时间】:2013-08-23 22:04:41
【问题描述】:

这让我很生气(Eclipse Kepler)

public class FastReader 
{
public static void main (String[] args)
{
    FastReader a = new FastReader("hi");
}
public FastReader(int a)
{

}
public FastReader(String b)
{
    FastReader(10);
}
}

我得到这个错误:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
The method FastReader(int) is undefined for the type FastReader    
at FastReader.<init>(FastReader.java:14)
at FastReader.main(FastReader.java:6)

差点让我发疯!帮我摆脱这个! 谢谢!

【问题讨论】:

  • 在你的第二个构造函数中使用this(10);
  • Google 是您的朋友。谷歌搜索“java中的链构造函数”将答案显示为它的第一个链接。
  • 问题解决了吗?
  • @JBNizet 在异常中没有人能够推断出他们需要寻找“链接构造函数”。我认为这个问题非常有效,肯定是重复的,但有效
  • @Isaac 我从来没有说过这个问题是无效的。我刚刚说过,由于 OP 想要从 Java 中的另一个构造函数调用构造函数,首先要做的是通过谷歌搜索做一些研究,例如“从 Java 中的另一个构造函数调用构造函数”。只要这样做就会立即得到答案。

标签: java


【解决方案1】:

使用

public FastReader(String b) {
   this(10);
}

【讨论】:

  • 你说我调用构造函数的方式是完全错误的兄弟?谢谢
  • 是的,编译器告诉你这个,上面是构造函数链接的正确语法
【解决方案2】:
public FastReader(String b)
{
    this(10);
}

这是调用同一个类构造函数的正确方法。 如果要调用同一个类构造函数,请使用关键字“this”,如果要调用父类构造函数,请使用关键字“super”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-02
    • 2014-10-02
    • 2016-11-01
    • 1970-01-01
    • 2020-06-05
    • 2013-02-23
    • 1970-01-01
    相关资源
    最近更新 更多