묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 중급 1편
Enum 과 null object pattern
public enum HttpStatus { NONE(-1, "정의되지 않은 상태코드입니다."), OK(200, "OK"), BAD_REQUEST(400, "Bad Request"), NOT_FOUND(404, "Not Found"), INTERNAL_SERVER_ERROR(500, "Internal Server Error"); ... public static HttpStatus findByCode(int code) { for (HttpStatus status : HttpStatus.values()) { if (status.getCode() == code) { return status; } } return HttpStatus.NONE; } public boolean isSuccess() { return code >= 200 && code < 300; } } public class HttpStatusMain { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("HTTP CODE: "); int httpCodeInput = scanner.nextInt(); HttpStatus status = HttpStatus.findByCode(httpCodeInput); System.out.println(status.getCode() + " " + status.getMessage()); System.out.println("isSuccess = " + status.isSuccess()); } }안녕하세요 김영한 강사님. 먼저 항상 양질의 강의를 제공해주셔서 감사하다는 말씀을 전해드리고 싶습니다.HttpStatusMain 에서 null 체크하는 일이 발생하여 이를 제거해보면 어떻게 해야할까 에 대한 고민이 들었습니다.그래서, Enum 에 null object pattern 을 적용해보면 어떨까 하여 HttpStatus.NONE(-1, "정의되지 않은 상태코드입니다.") 와 같이 정의해봤습니다.이렇게 적용했을 때, 1. 다른 사이드 이펙트가 있을까요? 1-1. findByCode() 에서 return HttpStatus.NONE 이 아닌 throw new IllegalArgumentException("해당하는 상태코드가 없습니다."); 와 같이 RuntimeException 을 날리는 것이 더 나은 방법일까요? 2. 현업에서는 enum 타입의 null check, null object pattern 를 어떻게 구현하는지 궁금합니다.긴 글 읽어주셔서 감사합니다.
-
미해결유니티 머신러닝 에이전트 완전정복 (기초편)
GridAgent.cs에서 sensor가 null입니다.
안녕하세요 GridAgent.cs 코드에서 public override void CollectObservations(VectorSensor sensor) { ... // sensor 부분이 null로 전달됩니다. // 일단 널처리는 했지만 왜 null로 오는지 궁금합니다. Debug.Log(sensor); if (sensor != null) { sensor.AddObservation(transform.position.x); sensor.AddObservation(transform.position.z); // 각각 도형에 대한 좌표 List<int> otherPos = area.otherPos; for (int i = 0; i < otherPos.Count; i++) sensor.AddObservation(otherPos[i]); } } 감사합니다.
-
미해결언리얼 엔진4 입문 (C++ 기반)
GameMode. GetWorld 질문 있습니다.
해당 강의를 따라가는 도중 UMG를 보게되어서 AI Controller이후에서 UI를 만들어 보는 실습을 하는 도중에 생긴 의문점 입니다. 1. 왜class의 임시 변수를 통해서 생성해 줘야 하는지 먼저 의문입니다. 두 코두 모두 불러온 객체(UI_HUD)의 Class를 받아서 쓰는건데 굳이 HUD_Class에 옮겨서 사용하는지 의문입니다. 그냥 CreateWidget(GetWorld(),UI_HUD.Class); 하면 안되나요?? 2. 왜 어떤 프로젝트의 GameMode에서는 GetWorld가 nullptr이뜨고, 어떤 프로젝트에서는 안뜨는지 궁금합니다. 제 생각에는 GameMode는 엑터이기 때문에 게임 레벨이 로드된 이후 월드가 있다고 보장받을 것 같은데 어떤 프로젝트에서는 null이 떠서 당황스럽습니다. 예시 프로젝트의 슈팅 게임에서는 GetWorld를 생성자에서 부르니 잘 작동되는 반면에 실습하던 프로젝트에서는 GetWorld를 부르면 잘 되지 않았던 점이 궁금합니다. 3. 마지막으로 제가 언리얼을 쓰는 프로젝트에 합류하게 되었는데 추천하는 책,인강 등이 있을까요? 현재 공식문서를 찾고 잘 안되면 구글을 찾게 되는데, 찾아보면 볼수록 블루프린트 관련한 자료만 많이 나와서 강의를 수강한 이후에 책이나 인터넷 강의를 구매하여 더 베이스를 다지고 싶습니다. 일단 이득우님의 파란책 구매 했는데 더 추천해주실 책 있나요? 긴글 읽어주셔서 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
주문 조회 시 Item이 Lazy Loading 되지 않습니다.
안녕하세요. 주문 내역을 조회하는 과정에 아래와 같은 오류가 발생합니다. 그래서 아래와 같이 orderItem[0].item.name을 주석 해보았습니다. 그렇게 하니 나머지 값을 잘 나옵니다. 그래서 쿼리를 찍어보니 아래와 같이 OrderItem까지는 Lazy Loading이 잘 되나 Item을 불러오지 못하면서 null exception이 발생하는 것 같습니다. 관계 설정이 잘못되었나 싶어서 강의 자료를 비교 해보았지만 동일하게 맵핑하였고 다른 점이 있다면 아이템 상속관계를 Joined로 잡았다는 것 말고는 동일한 것 같습니다. 제가 무엇을 잘못 한걸까요? ㅠ.ㅠ 아래 OrderItem, Item 스샷도 같이 올리겠습니다. 너무 길게 작성했네요... 강의 잘 따라오고 있었는데 원인을 잘 못찾겠네요...
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
"Monster가 null 입니다"
Monster monster 를 선언할때 monster의 값이 null 이라고 뜹니다. 실행을 계속해서 값을 바꾸려고 해도 계속 null입니다 Monster 클래스: public enum MonsterType { None = 0, Slime = 1, Orc = 2, Skeleton = 3, } class Monster : Creature { protected MonsterType type; protected Monster(MonsterType type) : base(CreatureType.Monster) { } public int GetHp() { return hp; } public int GetAttack() { return attack; } public bool IsDead() { return hp <= 0; } public void Ondamaged(int damage) { this.hp -= damage; if (this.hp < 0) { this.hp = 0; } } public MonsterType GetmonsterType() { return type; } } class Orc : Monster { public Orc() : base(MonsterType.Orc) { type = MonsterType.Orc; SetInfo(60, 18); } } class Slime : Monster { public Slime() : base(MonsterType.Slime) { type = MonsterType.Slime; SetInfo(35, 14); } } class Skeleton : Monster { public Skeleton() : base(MonsterType.Skeleton) { type = MonsterType.Skeleton; SetInfo(48, 12); } }