我无法在element
和argument
上调用字符串方法。
UML图告诉我StartsWith
类具有通用类型T>String
。我在另一篇文章中读过,您需要以这种方式<T extends String>
来实现它。
我想用Object代替T
public boolean predicate(Object element, Object argument)
此处的方法,但编译器向我抛出那是不可能的。
界面:
public interface Intaf<T> {
public boolean pres(T element, T argument);
}
班级:
public class StartsWith <T extends String> implements Intaf {
@Override
public boolean pres(Object element, Object argument) {
String firstLetterElement = element.substring(0,1);
String firstLetterArgument = argument.substring(0,1);
return firstLetterElement.equals(firstLetterArgument);
}
}
答案 0 :(得分:1)
您要实现Intaf<T>
。只是说Intaf
就意味着Intaf<Object>
。
答案 1 :(得分:0)
您需要将其更改为Intaf<T>
,并将参数更改为类型T
@Override
public boolean pres(T element, T argument) {
....
}
答案 2 :(得分:0)
更改为
public class StartsWith <T extends String> implements Intaf<T> {
@Override
public boolean pres(T element, T argument) {
String firstLetterElement = element.substring(0,1);
String firstLetterArgument = argument.substring(0,1);
return firstLetterElement.equals(firstLetterArgument);
}
}