java – 构造函数不能应用于给定的类型?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 构造函数不能应用于给定的类型?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1711字,纯文字阅读大概需要3分钟。
内容图文
![java – 构造函数不能应用于给定的类型?](/upload/InfoBanner/zyjiaocheng/753/3860314963cb47369512b8e85bc77639.jpg)
我有以下Java代码:
public class WeirdList {
/** The empty sequence of integers. */
/*ERROR LINE */ public static final WeirdList EMPTY = new WeirdList.EmptyList();
/** A new WeirdList whose head is HEAD and tail is TAIL. */
public WeirdList(int head, WeirdList tail) {
headActual = head;
tailActual = tail;
}
/** Returns the number of elements in the sequence that
* starts with THIS. */
public int length() {
return 1 + this.tailActual.length();
}
/** Apply FUNC.apply to every element of THIS WeirdList in
* sequence, and return a WeirdList of the resulting values. */
public WeirdList map(IntUnaryFunction func) {
return new WeirdList(func.apply(this.headActual), this.tailActual.map(func));
}
/** Print the contents of THIS WeirdList on the standard output
* (on one line, each followed by a blank). Does not print
* an end-of-line. */
public void print() {
System.out.println(this.headActual);
this.tailActual.print();
}
private int headActual;
private WeirdList tailActual;
private static class EmptyList extends WeirdList {
public int length() {
return 0;
}
public EmptyList map(IntUnaryFunction func) {
return new EmptyList();
}
public void print() {
return;
}
}
我一直得到错误:“构造函数不能应用于给定的类型”…这是否意味着超类的子类必须在构造函数中具有与超类相同数量的参数?我一直在墙上撞了一个小时.
解决方法:
子类不必具有“构造函数中与超类相同数量的参数”的任何构造函数,但它必须从其自己的构造函数中调用其某些超类构造函数.
如果超类具有no-arg构造函数,则默认情况下会调用它,如果省略对超类构造函数的显式调用,或者子类根本没有显式构造函数(就像你的情况一样),但由于你的超类没有no-arg构造函数,编译失败.
你可以在EmptyList中添加这样的东西:
private EmptyList() {
super(0, null);
}
拥有一个你的两个类继承的抽象超类也许是一个更好的主意,但这是一个选择.
内容总结
以上是互联网集市为您收集整理的java – 构造函数不能应用于给定的类型?全部内容,希望文章能够帮你解决java – 构造函数不能应用于给定的类型?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。