Skip to content

[recap] κ°€λ³€μΈμž(varargs)Β #17

@kgy1008

Description

@kgy1008

무엇을 μ•Œκ²Œ λ˜μ—ˆλ‚˜μš”?

κ°€λ³€μΈμž

κ°€λ³€μΈμž, 말 κ·ΈλŒ€λ‘œ μ—¬λŸ¬ 개의 λ§€κ°œλ³€μˆ˜λ₯Ό 받을 수 μžˆλ‹€λŠ” λœ»μ΄λ‹€. κ°€λ³€μΈμžλ₯Ό μ‚¬μš©ν•˜λ©΄ λ©”μ„œλ“œ 호좜 μ‹œμ— μ „λ‹¬λ˜λŠ” 인자의 개수λ₯Ό λ™μ μœΌλ‘œ λ³€κ²½ν•  수 μžˆλ‹€. 배열을 ν¬ν•¨ν•œ λͺ¨λ“  μ°Έμ‘°μžλ£Œν˜•(Wrapper Class, String, Object, List, Map)이 κ°€λ³€μΈμžλ‘œ μ‚¬μš© κ°€λŠ₯ν•˜μ§€λ§Œ κΈ°λ³Έ μžλ£Œν˜•μ€ κ°€λ³€μΈμžλ‘œμ„œ μ‚¬μš©ν•  수 μ—†λ‹€.
κ°€λ³€μΈμžλ₯Ό μ‚¬μš©ν•˜λŠ” 방법은 κ°„λ‹¨ν•˜λ‹€. μ•„λž˜ μ½”λ“œμ²˜λŸΌ λ³€μˆ˜ νƒ€μž… 뒀에 기호(...)λ₯Ό λΆ™μ—¬μ£Όλ©΄ λœλ‹€. λ‹€λ§Œ, λ‹€λ₯Έ νŒŒλΌλ―Έν„°μ™€ κ°€λ³€μΈμžλ₯Ό 같이 μ‚¬μš©ν•˜λŠ” κ²½μš°μ—λŠ” κ°€λ³€μΈμžλ₯Ό 제일 뒀에 μœ„μΉ˜μ‹œμΌœμ•Ό ν•œλ‹€.

public static Order createOrder(Member member, Delivery delivery, OrderItem... orderItems) {
    Order order = new Order();
    order.setMember(member);
    order.setDelivery(delivery);
    for (OrderItem orderItem : orderItems) {
        order.addOrderItem(orderItem);
    }
    order.setStatus(OrderStatus.ORDER);
    order.setOrderDate(LocalDateTime.now());
    return order;
}

κ·Έλ ‡λ‹€λ©΄ μ™œ κ°€λ³€μΈμžλ₯Ό μ‚¬μš©ν•˜λŠ” κ²ƒμΌκΉŒ? List μžλ£Œν˜•μ„ ν™œμš©ν•΄λ„ λ˜μ§€ μ•Šμ„κΉŒ? μ•„λž˜ μ½”λ“œλ₯Ό μ‚΄νŽ΄λ³΄μž.

// κ°€λ³€μΈμž μ‚¬μš©
public void printArgs(String... args) {

    for (String arg : args) {
        System.out.println(arg);
    }
}

// 리슀트 μ‚¬μš©
public void printArgs(List<String> args) {
    for (String arg : args) {
        System.out.println(arg);
    }
}

// -------------------------------- ν•¨μˆ˜ 호좜 ----------------------------------- //

// κ°€λ³€μΈμˆ˜ μ‚¬μš© ν•¨μˆ˜ 호좜
printArgs("Hello", "World");

// List μ‚¬μš© ν•¨μˆ˜ 호좜
List<String> args = Arrays.asList("Hello", "World");
printArgs(args); 

두 λ©”μ„œλ“œλŠ” λ§€κ°œλ³€μˆ˜μ˜ νƒ€μž… μ™Έμ—λŠ” 차이가 μ—†κ³ , κΈ°λŠ₯적으둜 λ™μΌν•˜λ‹€. λ‹€λ§Œ λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•¨μ— μžˆμ–΄ κ°€λ³€μΈμžλŠ” 호좜 μ½”λ“œμ˜ 가독성과 μ‚¬μš©νŽΈμ˜μ„±μ„ 높일 수 μžˆλŠ” μž₯점이 μžˆμŒμ„ 확인할 수 μžˆλ‹€.

μ–΄λ €μš΄ λ‚΄μš©μ΄ μžˆμ—ˆλ‹€λ©΄ 이λ₯Ό μ–΄λ–»κ²Œ ν•΄κ²°ν•˜μ˜€λ‚˜μš”?

  • ꡬ글링

μ–΄λ–€ 자료λ₯Ό μ°Έκ³ ν•˜μ˜€λ‚˜μš”?

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions