如何解决我的方法没有为类定义吗?
我在编程方面有点缺乏经验,因此可能很愚蠢。 但是我在以下方法中遇到了问题:
import java.util.Set;
public class Launcher
{
public static void printEntries(ReadableMap<String,Integer> a)
{
Set<String> b = a.keysAsSet();
try
{
for(String i : b)
{
if(i != null)
{
getOrThrow(i);
}
System.out.println(i + ": " + getOrThrow(i));
}
}
catch(UnknownKeyException z)
{
throw new UnknownKeyException();
System.out.println("Eine UnknownKeyException ist aufgetreten.");
}
}
}
未定义 Launcher 类型的 getOrThrow(String) 方法。
以下是一些可能有用的代码片段:
public interface ReadableMap<K,V> {
public abstract V getOrThrow(K key) throws UnknownKeyException;
}
和
public abstract class AbstractReadableMap<K,V> implements ReadableMap<K,V>
{
protected Entry<K,V>[] entries;
public V getOrThrow(K k) throws UnknownKeyException
{
for(Entry<K,V> i : entries)
{
if(i.getValue() != null && i.getKey().equals(k))
{
return i.getValue();
}
}
throw new UnknownKeyException();
}
}
这是为什么,我该如何解决?
我非常感谢任何形式的帮助。 提前致谢!
解决方法
此处对 getOrThrow(i)
的调用是隐式 Launcher.getOrThrow(i)
- 换句话说,它正在调用属于类 Launcher 的方法。您可能希望改为调用 a.getOrThrow(i)
,因为 a
是实现该方法 ReadableMap
的类型。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。