过滤Java中的物品



我有一个软件包,称为事物。在此包装中,有一些常规和抽象的课程,例如水果,食物,易腐的,鞋子,物品等。我想创建一个过滤器,可以在单击时过滤这些过滤器。例如,单击按钮水果将归档水果。在一个称为代码的单独包装中,我有4个类,每个类都提供一个功能,例如导入我的数据和方法,运行应用程序,GUI和控制器。我已经设置了GUI课以显示按钮,但是,我对如何让Java在"听"类中过滤我的项目感到困惑 - 响应GUI类单击的按钮的类。我该如何编写代码?我尝试了以下内容,但行不通。我必须在代码中导入物品吗?

在另一篇文章中有此代码:

List<Person> beerDrinkers = persons.stream()
.filter(p -> p.getAge() > 16).collect(Collectors.toList());
//Lets say I edit this to make it similar to my problem
List<Item> Perishables = Food.stream()
.filter(p -> p.getName()).collect(Collectors.toList());

那是行不通的,这给了我错误。有人可以解释该代码如何工作,以及我如何将其应用于我的问题?

// I currently have this empty in my controller class to use as a filter. Am I suppose to filter over here or in the class that holds the methods?
else if(text.equals("Food")){
    }

包装产品; 公共摘要类食物扩展项目{

String Expiration_Date;
public String toString()
{
    return super.toString() + ", Expiration: " + Expiration_Date;
}
}
package Products;
public class Fruit extends Perishable {
public Fruit(String s)
{
    StringTokenizer stk = new StringTokenizer(s);
    stk.nextToken();
    this.Item_name = stk.nextToken();
    this.Item_code = stk.nextToken();
    this.price = Double.parseDouble(stk.nextToken());
    this.Expiration_Date = stk.nextToken();
    if (stk.nextToken().compareTo("false") == 0)
        this.flag = false;
    else
        this.flag = true;
    this.inventory = Integer.parseInt(stk.nextToken());
}
public String toString()
{
    return super.toString();
}
}

您提到的代码使用JDK 1.8。您应该通过执行检查JDK版本 控制台中的javac -version

List<Item> foods = perishables.stream()
.filter(p -> p.getSimpleName().equals("Food")).collect(Collectors.toList());

参考来源,食物是商品的清单?list.stream()返回与集合的流接口。流是JDK 1.8的接口,我们可以创建一个封闭以操作集合元素。您应该在过滤器方法中返回bool值。

stream()是一种实现 Collection 的类方法。然后,使用过滤器方法过滤易腐烂的对象,然后返回带有过滤对象的新流。最后,使用collect(collectors.tolist())将过滤的对象累积到阵列列表。

btw class.getsimplename可以返回一个没有包装名称的短类名称。

最新更新