[英]Implement Interface with Generic Java
我不能在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);
}
}
您要实现Intaf<T>
。 只是说Intaf
意味着Intaf<Object>
。
您需要将其更改为Intaf<T>
并将参数更改为T类型
@Override
public boolean pres(T element, T argument) {
....
}
改成
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);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.