상세 컨텐츠

본문 제목

[람다+함수인터페이스]카드연장 메소드 좀 바뀐거

자바

by esoesmio 2023. 4. 6. 10:48

본문

foreach로 해도 되고 map으로 해도 된다.

 

 

import java.util.ArrayList;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class z15 {

    public static void main(String[] args) {


        ArrayList<card> list = new ArrayList<>();

        list.add(new card("a", 3));
        list.add(new card("b", 1));

        list.add(new card("c", 0));

        list.add(new card("d", 1));
        list.add(new card("e", 2));

        list.add(new card("f", 5));


        Stream<card> a = list.stream().filter(g -> g.validyear <= 1).map(b -> {
            b.validenlong(3,g->{
                System.out.println(g+"년 연장되었습니다.");
                b.setValidyear(b.getValidyear()+g);
                System.out.println(b);

            });
            return b;

        });
a.forEach(z-> System.out.println(z.getCardname()+"의 유효기간은" + z.validyear));


    }
//public void change(){
//
//    this.validyear = validyear + year;
//
//}

}



class card {

    @Override
    public String toString() {
        return "card{" +
                "cardname='" + cardname + '\'' +
                ", validyear=" + validyear +
                '}';
    }

    public String getCardname() {
        return cardname;
    }

    public void setCardname(String cardname) {
        this.cardname = cardname;
    }

    public int getValidyear() {
        return validyear;
    }

    public void setValidyear(int validyear) {
        this.validyear = validyear;
    }

    String cardname;
    int validyear;

    void validenlong(int year, cardvali c) {

//        this.validyear = validyear+3;



c.enlong(year);
//        System.out.println(getCardname() + " 카드는 " + year + "년 연장되었습니다.");

    }

    card(String cardname, int validyear) {

        this.cardname = cardname;
        this.validyear = validyear;
    }


}

interface cardvali {

    void enlong(int year);


}

관련글 더보기

댓글 영역