상세 컨텐츠

본문 제목

[람다+함수형인터페이스] 카드연장

자바

by esoesmio 2023. 4. 6. 10:31

본문

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->{
                b.validyear = b.validyear+3;

            });
            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) {

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);


}

관련글 더보기

댓글 영역