gpt4 book ai didi

Java 泛化 - 构造函数不能应用于给定类型

转载 作者:行者123 更新时间:2023-12-02 03:23:54 26 4
gpt4 key购买 nike

我正在做一个关于使用邻接列表实现图的教程任务,但构造函数出现问题。

在给定的GraphTester.java中我有:

//Constructor cannot be applied to given types
FriendShipGraph<String> graph = new AdjList<String>();

然后FriendShipGraph.java提供了一个接口(interface):

public interface FriendshipGraph<T extends Object> {
public static final int disconnectedDist = -1;

public abstract void addVertex(T vertLabel);
public abstract void addVertex(T srcLabel, T tarLabel);
//Other abstract methods
}

所以我需要编写一个类来实现LinkedList:

public class SinglyLinkedList implements LinkedListInterface {
private Node head;
private int length;

public int getLength() {
return length;
}

public SinglyLinkedList() {
head = null;
length = 0;
}

//Other methods to manage the linked list

public class Node
{
private String value;
private Node nextNode;

public Node(String value) {
this.value = value;
nextNode = null;
}

//Other methods to manage node
}
}

我必须使用LinkedList数组来实现Graph:

public class AdjList <T extends Object> implements FriendshipGraph<T> {
SinglyLinkedList[] AdjList = null;

//This is the constructor containing the error
public AdjList(T vertices) {
int qty = Integer.parseInt((String) vertices);
AdjList = new SinglyLinkedList[qty];

for (int i = 0; i < AdjList.length; i++)
AdjList[i] = new SinglyLinkedList();
}
}

但是,当我编写自己的测试文件时,我创建了这样的 AdjList 对象,没有错误,但这不是该类所需要的:

AdjList<String> aList = new AdjList<String>("9");

所以有人请建议我如何修复构造函数。非常感谢!

最佳答案

FriendShipGraph<String> graph = new AdjList<String>();

您在 AdjJust 中没有零参数构造函数。如果您提供自己的构造函数,则不会生成默认的零参数构造函数,就像您对 AdjList(T vertices) 所做的那样。

您需要提供一个默认构造函数。也许类似下面的内容可能就足够了,具体取决于未显示的其他代码:

public class AdjList <T extends Object> implements FriendshipGraph<T> {

SinglyLinkedList[] AdjList = null;

public AdjList() {

}

//This is the constructor containing the error
public AdjList(T vertices) {
int qty = Integer.parseInt((String) vertices);
AdjList = new SinglyLinkedList[qty];

for (int i = 0; i < AdjList.length; i++)
AdjList[i] = new SinglyLinkedList();
}
}

我不太确定为什么您要传递一个字符串来表示数量,但这至少应该修复您所询问的编译错误。

关于Java 泛化 - 构造函数不能应用于给定类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39240079/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com