gpt4 book ai didi

java - 找不到符号 - 方法(通用方法)

转载 作者:行者123 更新时间:2023-12-02 03:50:41 27 4
gpt4 key购买 nike

我有两个类。一个是Phrase类,

import java.util.List;
import java.util.ArrayList;

@SuppressWarnings("unchecked")
public class Phrase
{
List<String> papers = new ArrayList();
String name = "";
boolean multiple = false;

public Phrase(String name, List list)
{
this.name = name;
this.papers = list;
if(list.size() > 1)
{
multiple = true;
}
}

public Phrase(String name, String pName)
{
this.name = name;
this.papers.add(pName);
multiple = false;
}

public void addPaper(String paper)
{
papers.add(paper);
multiple = true;
}

public String getPhrase()
{
return name;
}

public List<String> getPapers()
{
return papers;
}
}

另一个是 KeyedLinkedList。

public class KeyedLinkedList<K,Phrase>
{
private KeyNode first;
private int size;

private class KeyNode
{
K key;
Phrase value;
KeyNode previous;
KeyNode next;

public KeyNode(K key, Phrase value, KeyNode previous, KeyNode next)
{
this.key = key;
this.value = value;
this.previous = previous;
this.next = next;
}
}

public int size()
{
return size;
}

public boolean put(K key, Phrase val)
{
if(isEmpty())
{
first = new KeyNode(key, val, null, null);
first.next = first;
first.previous = first;
size++;
return true;
}
KeyNode temp = first;
if(temp.key.equals(key))
{

//****ERROR LOCATION****//
temp.value.addPaper(val.getPapers().get(0));
//****ERROR LOCATION****//

if(temp.value.getPapers().size() < 3)
return false;
return true;
}
temp = temp.next;
while(temp != first)
{
if(temp.key.equals(key))
{
temp.value.addPaper(val.getPapers().get(0));
if(temp.value.getPapers().size() < 3)
return false;
return true;
}
temp = temp.next;
}
temp.previous.next = new KeyNode(key, val, temp.previous.next, first);
first.previous = temp.previous.next;
size++;
return true;
}
}

当我编译这个时,我收到错误:“找不到符号 - 方法 getPapers()”

我显然在我的 Phrase 类中有 getPapers() 方法,并且参数中的 val 是一个 Phrase 对象。我想知道我需要做什么来解决这个问题。错误发生在 put 方法的中途。

最佳答案

public class KeyedLinkedList<K,Phrase>
// ^^^^^^

在这里,您声明了一个与 Phrase 同名的类型变量。类并对其进行阴影处理。使用 Phrase 类型声明的任何变量引用此类型变量而不是 Phrase类。

由于我不知道您的意图是什么,因此除了删除它之外我无法提供任何建议。

public class KeyedLinkedList<K>

顺便说一句,不要这样做:

List<String> papers = new ArrayList();
// ^^^^^^^^^

它被称为 raw type ,它很糟糕,没有理由使用它。做new ArrayList<String>相反。

关于java - 找不到符号 - 方法(通用方法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35906893/

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