55,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
-
자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
switch의 기능인건 코틀린에서는 없나요?
fun judgeNumber5(grade: Int) { when (grade) { 3 -> { println("A의 권한을 갖습니다") } 2 -> { println("B의 권한을 갖습니다") } else -> { println("C의 권한을 갖습니다.") } } }public static void judgeNumber5(int grade) { switch (grade) { case 3 : System.out.println("A의 권한을 갖습니다."); case 2 : System.out.println("B의 권한을 갖습니다."); default: System.out.println("C의 권한을 갖습니다."); } }이렇게 할 경우에 코틀린은 early return으로 해당 구문만 실행하고 when 절을 나가게 되는데java의 switch 기능처럼 사용하는 방법이 있을까요?
-
자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
안녕하세요. 람다에서 외부변수를 사용하는 Closure관련해 궁금해 질문드려요.
안녕하세요. 먼저 질좋은 강의 만들어주시고 제공해주셔서 감사드려요!강의중 Closure가 자바와 다르게 final이 아닌 var변수를 람다안에서 값을 변경가능한것까지 이해하였습니다. 다른 궁금증이 하나 생겨서요. Closure가 람다를 진입하기전 변수를 포획해서 진행한다고 하셨는데, 이는 동시성 문제로부터 자유롭나요?
-
자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
12강 Movable 인터페이스
안녕하세요 ㅎㅎ코틀린 강의 잘 듣고 있습니다. 12강에 자바에서 Movable 인터페이스를 new Movable로 인스턴스화 시켰는데.. 인터페이스는 인스턴스 객체로 만들수 없는거 아닌가요?? 헷갈려서 질문드립니다. 감사합니다.
-
자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
9강 실제 메모리에 존재하는 것과 무관하게 게터와 세터를 만들 수 있다
안녕하세요. 9강 마지막 요약 부분에서 '실제 메모리에 존재하는 것과는 무관하게 getter,setter를 만들 수 있다.' 라고 말씀해주신 부분에 대해서 질문 드립니다.쭉 이어서 설명해주신 것처럼, 코틀린으로 작성한 getter.setter가 byte코드 변환 시 함수로 생성되는데요. 그럼 실제 메모리에는 함수로 존재하는거 아닌가요?..아니면 코틀린에서 그부분은 캡슐화?.. 처럼 내부구현을 가려놔서 사용자인 개발자들은 메모리에 없는 것처럼 느낀다? 라고 말씀해주신 걸까요?? 궁금해서 질문드려봅니다!
-
자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
맥에서 intelij 사용 단축키에 대해 알고싶습니다
안녕하세요, 주제와는 좀 다른 질문인데요.강의하시는거 보면 맥에서 intelij 를 상당히 잘 활용하신다고 느꼈습니다. 특히, 9강에서 ide 화면을 4분할로 빠르게 구성하는게 인상적이었는데, 혹시 그 방법과 단축키 알려주실수 있나요?
-
자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
유틸리티 클래스
유틸리티 클래스 예시 자바 코드가 아래처럼 되어 있는데요. 추상클래스이다 보니 상속도 안되고 생성자가 private이다보니 인스턴스도 만들수 없는데, isDirectoryPath 메소드를 사용할 수 있는 방법이 있을까요?isDiretoryPath 메소드가 static 메소드가 되어야하는게 아닐까 싶어서요!package com.lannstark.lec11; public abstract class StringUtils { private StringUtils() {} public boolean isDirectoryPath(String path) { return path.endsWith("/"); } }
-
자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
main 함수 실행과 관련해서 질문드립니다.
안녕하세요. 좋은 강의 잘 듣고 있습니다.현재 인텔리제이에서 src/main/kotlin 폴더를 만들어서 강의를 따라가고 있습니다.2강 강의를 듣던 도중 println(str?.length) 를 실행해보려고 main 함수를 실행시켰더니 빌드가 되면서 에러가 발생합니다.lec12 패키지의 Lec12Main class에서error: package Person does not exist 가 발생합니다.Run Configuration에서 Run이 되기 전에 Build를 안 하게 옵션을 바꿔주면 함수가 실행은 되지만 str에 null을 넣었을 때도 길이가 3이 나오는 기이한 현상이 발생합니다.어떻게 해결하는 것이 좋을까요? (일단은 에러가 나는 부분을 주석처리하고 강의를 진행하고 있습니다!)
-
자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
코루틴의 대한 질문이 있습니다.
강사님, 강의 내용에는 코루틴이 없어 학습중에 궁금한 점이 있어서 문의드립니다.아래 코드의 실행 순서를 제가 정리 해봤습니다.제가 코루틴의 suspend, resume을 잘 이해한게 맞나 궁금해서요.물어볼 곳이 없어서, 죄송스럽게도 강사님께 문의를 하게 되었습니다.강의 내용과는 관련이 없어 답변을 해주시면 감사하겠지만, 답변이 안달리다도 괜찮습니다.감사합니다. println("Coroutine Outer") 이 실행된다.A 코루틴에서 delay를 만나, B 코루틴으로 실행권을 넘겨간다.B 코루틴도 delay를 만나, A 코루틴으로 실행권을 넘겨준다.1초가 지나고 A코루틴의 println("Coroutine A, Si")을 실행한다.반복문에 의하여 A코루틴의 2번째 delay를 만나, 다시 B 코루틴으로 실행권을 넘겨준다.B 코루틴도 1초가 지난 상태여서, 바로 println("Coroutine B, Si")을 실행한다.반복문에 의하여 B코루틴의 2번째 delay를 만나, 다시 A 코루틴으로 실행권을 넘겨준다.그 다음 4~7을 반복문이 끝날 때 까지 반복 후 코루틴이 종료된다.fun main() = runBlocking { // A 코루틴 launch { repeat(5) { i -> delay(1000L) println("Coroutine A") } } // B 코루틴 launch { repeat(5) { i -> delay(1000L) println("Coroutine B") } } println("Coroutine Outer") } fun <T> println(msg: T) { kotlin.io.println("$msg [${Thread.currentThread().name}]") }
-
자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
자바 유틸성 코드에 대한 질문입니다
11강 코틀린에서 접근 제어를 다루는 방법을 듣던 중 궁금한 점이 생겨 질문 남깁니다 :)[3.다양한 구성요소의 접근 제어 - 생성자] 부분에서 Java의 유틸성 코드를 만들 때 abstract class + private constructor를 사용해 인스턴스화를 막는다고 되어있습니다!public abstract class StringUtils { private StringUtils() {} public boolean isDirectoryPath(String path) { return path.endsWith("/"); } }추상클래스는 인스턴스화를 할 수 없다고 알고 있는데, 이미 인스턴스화가 막혀있는 상태에서 private constructor 가 필요한가?! 라는 궁금증이 들었습니다.질문은 정리하자면, abstract class 만으로 인스턴스화를 막을 수 있다고 생각하는데, private constructor까지 같이 사용하는 이유가 궁금합니다 !!강의 잘 듣고 있습니다. 재밌어요 ㅎㅎ 감사합니다 :)
-
자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
람다정의 관련 질문입니다
질문을 해야 하나...하는 생가도 들었지만...람다는 함수인가요?
-
자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
static 함수를 호출하는 부분에서 질문 드립니다.
안녕하세요. 12강 강의 중 companion object 내부에 있는 newBaby()를 호출할 때 @JvmStatic을 붙이지 않아도 호출이 가능하고, 오히려 IDEA에서 Companion을 제거하라는 힌트를 주더라구요. 혹시 코틀린 버전 차이일까요?
-
자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
안녕하세요. 대입문에 조건문이 들어갈 때, 변수 타입이 결정되는 방식에 대해서 질문이 있습니다.
안녕하세요. 강사님코틀린 질문이 있습니다. 코틀린은 정적타입 언어로 알고 컴파일 시점에 변수의 타입이 결정되는 것으로 알고 있습니다. 또 코틀린은 if-else문과 같은 조건을 표현식으로 사용하는 것으로 압니다.그래서 다음 처럼 조건식을 넣고 사용자 입력에 따라 정수/실수를 결정해서 할당하니 다음처럼 입력에 따라 정수일 수도 있고 실수일 수도 있습니다.마치 런타임 시점에 결정되는 듯이 보이는데, 내부적으로 어떻게 처리되는 것인지 궁금합니다.
-
자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
불려시는 시점에 존재하는 정보를 포획해서 갖고 있는다 라는 의미 질문입니다.
람다가 불려지는 시점에서 존재하는 것을 포획해서 정보를 갖고 있는다고 하셨는데요 제가 이해한 바로면 아래와 같은 코드에서 계속 1 1 1 1 1 1 1 이 출력되어야 하는데 1 1 1 2 2 2 가 출력됩니다.포획해서 갖고 있는 다는 것의 정확한 의미가 무엇일까요?이거 의미 생각해보고 여러가지로 테스트해보느라 벌써 한시간 동안 해맸습니다 ㅠ질문1. 포획하는 시점이 runFilter가 호출될때일까요? runFilter내에서 filter가 호출되는 시점일까요? (강의에서 말씀하신 의미는 후자같긴합니다.)질문2(*). 제일 햇갈리는 부분입니다. 포획하는 지점이 어쨋든 간에 아래의 코드의 경우에는 obj1이 참조하고 있는 객체(obj.numberStr이 1인 것)일텐데 그럼 람다내에서는 계속 포획한 객체 obj1에 해당하는 값인 1이 출력되어야 될텐데(300ms뒤에 obj1의 레퍼런스참조가 obj2로 바뀐다고 하더라도).... 왜 포획을 했음해도 불구하고 출력이 2가 나오는 것일까요? 클로져에서 포획한다는 것의 의미를 잘 모르겠습니다.fun main(args: Array<String>) { var obj1 = Obj() obj1.numberStr = "1" var obj2 = Obj() obj2.numberStr = "2" Thread() { Thread.sleep(300) obj1 = obj2 }.start() runFilter { // 질문1. 포획하는 시점 이곳? println(obj1.numberStr) Thread.sleep(100) println(obj1.numberStr) Thread.sleep(100) println(obj1.numberStr) Thread.sleep(100) println(obj1.numberStr) Thread.sleep(100) println(obj1.numberStr) Thread.sleep(100) println(obj1.numberStr) } } fun runFilter(filter: () -> Unit) { filter() // 질문1. 포획하는 시점 이곳? } class Obj{ var numberStr :String? = null } 감사합니다.
-
자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
상위클래스의 생성자나 init블럭에서 final이 아닌 프로퍼티에 접근하지 말라 의미여
안녕하세요.derived클래스에서 number 0나오는 예제 있잖아여상위클래스의 생성자나 init블럭에서 final이 아닌 프로퍼티에 접근하면 안된다고 하셨는데 final이라고 해서 var이아닌 val인가? 처음에 생각했는데저 의미가 아니라정확히는 open키워드로 상속을 열어둬서 하위클래스에서 오버라이딩 될 수 있는 프로퍼티에 접근하지 말라는거죠?자바에선 메쏘드에 final 키워드를 붙이면 하위클래스에서 오버라이딩이 불가능 하니깐 사용하신 의미라 생각되는데 좀 햇갈려서요~ 감사합니다.
-
자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
부 생성자와 정적 팩토리 질문드립니다.
부생성자 부분에서 조금 햇갈리는게 생겨서 문의드립니다.그리고 정적팩토리도 말씀해주셨는데 제가 생각한게 맞나 문의드립니다.코드는 아래와 같습니다.아래 주석에 질문 있습니다.constructor (alien: Alien) : this()<- 이부분에서 this를 좀 나중에 호출하고 싶은지 문의드립니다. 밑에 if를 처리하여 호출하고 싶거든요. 불가능한게 맞을까요?fun main(args: Array<String>) { var alien = Alien("에얼리언", AlienType.AType) //부생성자로 person 생성 var personFromSubConstructor = Person(alien) println("부생성자로 만든 person의 나이 : ${personFromSubConstructor.age}") //정적 팩토리로 person생성 val personFromStaticFactory = Person.createPersonFromAlien(alien) println("주생성자로 만든 person의 나이 : ${personFromStaticFactory.age}") } class Person( val name: String, var age: Int ){ //에어리언의 타입이 A면 10살, B면 20살 constructor (alien: Alien) : this(alien.name, 0){ //질문1. 일단 임의값으로 주생성상자를 만들어서 객체를 초기화 한 다음에 바꿀수 밖에 없는 것인지 궁금합니다. if(alien.type == AlienType.AType) this.age = 10 else this.age = 20 } //질문2. 아래와 같은 코드를 정적 팩토리맞을까요? companion object{ fun createPersonFromAlien(alien: Alien) : Person = if(alien.type == AlienType.AType) Person(alien.name, 10) else Person(alien.name, 20) } } class Alien( val name: String, val type: AlienType ) enum class AlienType(type: String){ AType("AType"), BType("BType") }
-
자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
런타임에 클래스 타입이 추가될 수 없다라는게 이해가 안됩니다.
안녕하세요. 강의 잘 듣고 있습니다.궁금한게 생겨서 문의드립니다.sealed 클래스에서컴파일 타임때 하위 클래스의 타입을 모두 기억한다,즉, 런타임때 클래스 타입이 추가될수 없다여기서 말하는 런타임이 뭘까요..? 자바에서 런타임에 클래스타입을 추가할 수 있나요?(리플렉션을 통해 런타임에 동적으로 클래스로더에 올리는거 정도는 생각이 드는데, 클래스를 상속받는 클래스 타입을 추가하는건 이해가 안되서요) 아니면 이미 제3자가 sealed로 배포한 라이브러리를 임포트하여 코드 내에서 상속받은 클래스를 만드는것을 런타임이라 하신건지 궁금합니다 아 그리고 마지막으로 강의하시는 코틀린의 버전도 궁금합니다감사합니다 ^^
-
자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
람다를 매개변수로 받는 부분에 대한 질문입니다
안녕하세요!좋은 강의 잘 듣고 있습니다. 감사합니다user(block: (T) -> R) 부분에서 반환타입으로서 R을 명시해주었는데, 반환값이 void여도 상관없는 건가요?제네릭으로 선언해주었어도 반환값이 있어야 하지 않나 해서 질문을 남기게 되었습니다
-
자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
for문의 range에 관한 질문
안녕하세요. 코틀린을 독학하다가 좋은 강의가 있다는 것을 알게되어 수강중입니다.for문의 range에 대해 설명해주실 때 ..과 downTo에 대해서만 말씀해주셨는데 끝 값을 포함하지 않는 until은 언급하지 않으시더라구요. 그래서 혹시 until은 생략하신 이유가 있으신가요?
-
자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
16강 Java에서 확장함수 가져오기 사용 중 오류가발생합니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.Java에서 Kotlin을 불러서 사용할 때 인스턴스화 해서 사용하면 오류 없이 잘 실행이 되는데 Kotlin 클래스명으로 객체를 불러서 사용하려고 하면 에러가 발생해서 실행이 안됩니다 발생하는 에러는 java: non-static method lastChar1(java.lang.String) cannot be referenced from a static context입니다 왜그런지 알수있을까요? ㅠㅠ
-
자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
companion object에 관한 질문입니다
강사님께서 "companion object에 유틸성 함수들을 넣어도 되지만, 최상단 파일을 활용하는 것을 추천한다" 라고 하셨는데, 그 근거가 무엇인지 알 수 있을까요?? 참고할 url을 알려주시면 더욱 감사하겠습니다!!!