为了账号安全,请及时绑定邮箱和手机立即绑定

具有不同类型的方法头然后是参数

具有不同类型的方法头然后是参数

交互式爱情 2021-08-25 15:08:04
public class Album {    private String albumtitle;    private ArrayList<Photo> photos;    /**     * This constructor should initialize the     * instance variables of the class.     */    public Album(String title) {        this.albumtitle = title;        photos = new ArrayList<>();    }问题是它一直说“.contains 有一个字符串”这在方法头类型和参数类型相同时有效。我必须以某种方式转换吗?public Photo searchByTitle(String title) {        for(Photo photo : photos) {            if (photo.contains(title)){               return photo;            }            return null;        }    }简短的问题。谢谢
查看完整描述

2 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

为什么要检查照片中是否包含标题,标题是字符串类型,照片是不同类型。您不应该将照片的标题与给定的标题匹配吗?


public Photo searchByTitle(String title) {

    for(Photo photo : photos) {

        if (photo.getTitle().equals(title)){

           return photo;

        }

        return null;

    }


}


查看完整回答
反对 回复 2021-08-25
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

使用 Streams 的 Java 8+ 方法可能类似于:


/**

 * Returns the first photo in the Album collection with the

 * specified title, or null if no Photo with the title is found.

 * @param title The title of the photo for which one should search

 * 

 */

public Photo searchByTitle(String title)

{

    Optional<Photo> foundPhoto = photos.stream()

      .filter(p -> p.getTitle().equals(title))

      .findFirst();


    return foundPhoto.orElse(null);

}

这里的优点是它更多地关注所需的内容——找到匹配的标题——而不是循环结构。但是,它不一定是介绍性的 Java。但值得深思。


查看完整回答
反对 回复 2021-08-25
  • 2 回答
  • 0 关注
  • 124 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信