我的方法没有为 class 定义吗?
My is my method not defined for the class?
我在编程方面有点经验不足,因此可能会很愚蠢。
但是我在下面的方法中遇到了问题:
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)
——换句话说,它是在调用属于classLauncher的方法。您可能想改为调用 a.getOrThrow(i)
,因为 a
是一种实现该方法的类型,ReadableMap
.
我在编程方面有点经验不足,因此可能会很愚蠢。 但是我在下面的方法中遇到了问题:
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)
——换句话说,它是在调用属于classLauncher的方法。您可能想改为调用 a.getOrThrow(i)
,因为 a
是一种实现该方法的类型,ReadableMap
.