Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[4주차] 이시윤_Item27 #18

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

cyunlee
Copy link
Contributor

@cyunlee cyunlee commented Jan 22, 2025

No description provided.

- <mark style="background-color: rgba(255, 255, 0, 0.3);">`@SuppressWarnings`는 항상 **가능한 좁은 범위에 적용**해야 한다.</mark>
- ex) 변수 선언, 한 줄이하의 짧은 메서드, 생성자 등
- 한 줄이 넘는 메서드 or 생성자라면, 지역변수 선언으로 애노테이션을 옮기자.
- <mark style="background-color: rgba(255, 255, 0, 0.3);">사용할 때는 **경고를 무시해도 되는 이유를 주석으로 반드시** 남겨야 한다.</mark>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@SuppressWarnings를 사용할 때, 경고를 무시해도 되는 이유를 주석으로 남겨야 한다고 했는데, 구체적인 예시가 있을까요?


## ✔️ @SuppressWarnings("unchecked")

<mark style="background-color: rgba(255, 255, 0, 0.3);">경고를 제거할 수 없지만, <u>타입이 안전하다고 확신할 수 있다면</u> 경고를 숨기자!</mark>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

해당 타입이 안전하다는 확신을 얻기 위해 어떤 검증들을 해보는 게 좋은지 궁금합니다!

- 한 줄이 넘는 메서드 or 생성자라면, 지역변수 선언으로 애노테이션을 옮기자.
- <mark style="background-color: rgba(255, 255, 0, 0.3);">사용할 때는 **경고를 무시해도 되는 이유를 주석으로 반드시** 남겨야 한다.</mark>

```java
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저는 개인적으로 경고를 무시해서 "안전한" 경우는 거의 없다고 생각합니다. 그래서 @SuppressWarnings 를 지양하는 편인데요!
혹시 경고를 무시하는게 좀 더 나은 경우가 있나요??

//String은 Object의 자식
@SuppressWarnings("unchecked")
String value = (String) list.get(0);
System.out.println(value);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

만약 List<Object>를 그대로 사용하고 싶고,

list.add(1);
int intValue = (int) list.get(1);

이런 코드를 추가하고 싶다면
@SuppressWarnings("unchecked") 를 메서드 레벨로 빼야 할까요? 아니면 int intValue = (int) list.get(1); 이 위에 달아야할까요? 의견이 궁금합니다 :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants