繁体   English   中英

用通用Java实现接口

[英]Implement Interface with Generic Java

我不能在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);
    }
}

您要实现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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM