ooeunz
138
2019-09-27 22:33:15
2
650

java 객체 생성 질문이요ㅜㅜ



package hello;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.client.RestTemplate;

public class Application {

    private static final Logger log = LoggerFactory.getLogger(Application.class);

    public static void main(String args[]) {
        RestTemplate restTemplate = new RestTemplate();
        Quote quote = restTemplate.getForObject("https://gturnquist-quoters.cfapps.io/api/random", Quote.class);
        log.info(quote.toString());
    }

}

spring.io 에서 발췌하였습니다.

자바 객체 생성관련 질문인데요.

private static final Logger log = LoggerFactory.getLogger(Application.class);

같은 경우에는 LooggerFacory.getLooger(Application.class)를 log에 넣어서 Logger 객체를 만들고,


 RestTemplate restTemplate = new RestTemplate();

같은 경우는 new를 통해서 객체를 생성하네요. 저는 new를 통해서 클래스를 객체로 만드는걸로 알고 있었는데 저런 경우는 어떤 경우인 건가요?


그리고 getLogger()에 매개변수로 들어가는 Application.class에 .class는 어떤 종류의 매개변수인거죠?ㅠㅠ


0
  • 댓글 2

  • 드루이드
    63
    2019-09-27 22:47:11 작성 2019-09-27 22:48:21 수정됨

    해당 클래스에 대한 정보가 필요할경우 Class 를 넘겨줍니다. 예를들어 RestTemplate 에 포함된 모든 종류의 필드 함수이름을 출력하고 싶다 라고 한다면 restTemplate.getClass().getDeclaredMethods() 같은 것들을 호출해야 되죠. 이걸 함수로 만든다고 해보면 

    public String[] getFunctionNames(Class cls) {

      return cls.getDeclaredMethods();

    }

    이런식으로 되고 getFunctionNames(RestTemplate.class) 이런식으로 넘겨주게 됩니다. 

  • ooeunz
    138
    2019-09-27 23:02:11
    감사합니다!
  • 로그인을 하시면 댓글을 등록할 수 있습니다.