我的方法没有为 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.