Java链式构造函数调用错误[重复]

Posted

技术标签:

【中文标题】Java链式构造函数调用错误[重复]【英文标题】:Java chained constructor calling error [duplicate] 【发布时间】: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 中的另一个构造函数调用构造函数”。只要这样做就会立即得到答案。 【参考方案1】:

使用

public FastReader(String b) 
   this(10);

【讨论】:

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

    this(10);

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

【讨论】:

以上是关于Java链式构造函数调用错误[重复]的主要内容,如果未能解决你的问题,请参考以下文章

[C++11]委托构造函数

爪哇。隐式超级构造函数 Employee() 未定义。必须显式调用另一个构造函数[重复]

在java中从另一个调用一个构造函数[重复]

“构造函数调用必须是构造函数中的第一个语句”Java中的问题[重复]

Java在另一个[重复]中调用构造函数

处理类构造函数中的承诺错误[重复]