使用通用Java实现接口

时间:2018-07-15 13:58:41

标签: java generics interface

我无法在elementargument上调用字符串方法。 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);
    }
}

3 个答案:

答案 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);
    }
}