【发布时间】:2021-12-10 23:34:27
【问题描述】:
我的任务是创建一个谓词接口并实现一些实现该接口的类。例如,一个名为StartsWith 的类是泛型的,需要有一个构造函数来接受CharSequence 的子类的任何对象。
这是我目前拥有的:
谓词.java
package predicates;
interface Predicate<T> {
public char StartsWith(T obj);
}
StartsWith.java
package predicates;
public class StartsWith<T extends CharSequence> implements Predicate<T> {
@Override
public char StartsWith(T obj) {
return 'a';
// TODO Auto-generated method stub
}
}
创建 StartsWith 对象的示例必须如下所示:
StartsWith<String> predicate = new StartsWith<String>("aB");
当我尝试像这样实例化一个对象时,我立即遇到一个错误,指出参数不匹配,并且我不提供任何参数以使其正确,但是,它必须以这种方式调用。
我很困惑我在这里做错了什么。
【问题讨论】:
-
注意:您应该遵循 Java 命名约定。方法名应该用驼峰命名,所以它以小写开头。方法
StartsWith应该是startsWith。 -
你的
StartsWith类可能应该覆盖Predicate的test方法。
标签: java generics interface abstract