java - 如何在 Java 中设计一个通用类来检查提供给它的允许值?

标签 java class generics collections

我正在尝试设计一个接口(interface),它有一个方法来检查提供的值是否存在于实现该接口(interface)的类中,该类也保存数据结构。

在这里,我想为实现者提供灵 active ,以涵盖任何类型的集合。

下面是代码:

public interface AllowedValues<T>{

//T represents the type of values the implementing class will hold.
public boolean exits(T t)

}

现在我希望实现类保存该集合。将循环检查传递给exists()函数的参数是否存在于集合中

public class AllowedValue implements AllowedValues<String>{

List<String> listOfAllowedvalues; // I want to make this collection to be generic.

public boolean exist(String s){

return listOfAllowedValues.contains(s);

    }
}

如何在界面中添加灵 active ,甚至使集合的选择变得通用?

最佳答案

这是您想要做的吗:

public class AllowedValue<T> implements AllowedValues<T>
{
  private Collection<T> allowedvalues;

  public AllowedValue(Collection<T> allowedvalues)
  {
    this.allowedvalues = allowedvalues; 
  }

  @Override
  public boolean exist(T value)
  {
    return listOfAllowedValues.contains(value);
  }
}

然后您可以创建一个 AllowedValue,如下所示:

Collection<String> allowedStrings = Arrays.asList("Hello", "World"); 

AllowedValues<String> allowedValues = new AllowedValue<>(allowedStrings);

assert(allowedValues.exist("Hello"));
assert(!allowedValues.exist("Universe"));

关于java - 如何在 Java 中设计一个通用类来检查提供给它的允许值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22194523/

相关文章:

java - 无法切换到 Eclipse Helios 中的编译器合规性级别 1.8

Java F-Bound 通过接口(interface)绑定(bind)

java - ISomeBaseInterface 不能用不同的参数继承 : <java. lang.Object> 和 <>

java - OData 服务器 API 和表达式语法、文字和成员

java - 在均匀采购模式中处理状态更新

java - 有什么方法可以将注释的值传递到 Spring Boot 中的配置吗?

c++ - 了解运算符重载的效用

java - 我的主类中有大约 10k 行代码,我应该担心吗?

javascript - Javascript 将类更改为靠近他祖父的 div

c# - new() 的通用类型约束和抽象基类