【问题标题】:Java : how to use the Param to present a class [closed]Java:如何使用参数来呈现一个类[关闭]
【发布时间】:2021-07-15 06:00:30
【问题描述】:

我有一个关于参数的问题,什么参数来展示这个类,比如如果我找到BuildingsType(buildingEntities, Village),它会返回所有的村庄建筑

【问题讨论】:

  • 您好,振威,欢迎来到本站。不清楚你在问什么。请将代码包含为文本而不是图像。检查How to Ask
  • 不要查找instanceof,使用currBuildings.getClass().getName() 或类似的,或者传递[Type].class而不是类名并比较类
  • @RubioRic 很清楚出了什么问题:if (myInteger instanceof "Integer") 与 if (myInteger instanceof Integer) 不同
  • @Stultuske 啊,我没有看到那个类型是方法的参数和字符串。
  • 这能回答你的问题吗? Test if object is instanceof a parameter type

标签: java


【解决方案1】:

欢迎。

您可以通过如下参数传递一个类:

private List<Building> findBuildingsType(List<Building> buildings, Class<? extends Building> typ) {
    List<Building> re = new ArrayList<>();
    
    for (Building building : buildings) {
        if (typ.isInstance(building)) {
            re.add(building);
        }
    }
    
    return re;
}

特别是针对您的问题考虑使用streams

List<Building> buildingsOfTypeMansion = buildings.stream().filter(building -> building instanceof Mansion).collect(Collectors.toList());

【讨论】:

    猜你喜欢
    • 2023-04-10
    • 2020-04-23
    • 2014-08-08
    • 1970-01-01
    • 1970-01-01
    • 2013-10-23
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    相关资源
    最近更新 更多