inflearn logo
강의

講義

知識共有

もっとJava、コードを操作するさまざまな方法

リフレクションAPIパート2:クラス情報の変更または実行

제네릭을 쓰는 클래스 생성방법은 없나요?

453

kiybigs

投稿した質問数 14

0

안녕하세요.

강좌 잘 보고 있습니다.

강좌를 보고 실습하고 있는데요.

제가 좀 변태적인 취향인지라...

제네릭한 클래스를 newInstance 를 이용해서 생성하려고

하는데요. 어떻게 해야할지 도통 감이 안잡히네요.

JPA spring java

回答 3

0

corvo789

List<String> iAmList = new ArrayList<>();
Constructor<List<String>> constructor = (Constructor<List<String>>) Class.forName("java.util.ArrayList").getConstructor(null);
List<String> amIList = constructor.newInstance();

0

kiybigs

네. 맞습니다.

예를 들어 만약 ArrayList<String> 이란 클래스를 생성하고 싶은데요.

일단 방향이 맞는지는 모르겠지만 super type token 이란것 까지는 알게 되었는데요.. ParameterizedType 를 이용해서 RowType 인 ArrayList 와 TypeArgument 인 String 까지 구하는법은 알아냈는데요.

ArrayLIst 와 String 을 알아냈는것 까지는 좋았는데

ArrayList 야 RowType 으로  ((Class<?)rowType)getConstructor(null).newInstance() 이런식으로  인스턴스를 만든다고 하면 거기다 제네릭값을 어떻게 줘야 하는지 감이 안잡히네요.

제가 글주변이 없어서 소스상으로 말씀드리면

public void createList(Class<?> clazz) {
	List<clazz> list = new ArrayList<>(); ???
	Constructor<List<clazz>> constructor = Class.forName("java.util.ArrayList").getConstructor(null); ???
	constructor.newInstance(); ???
}

위와 같은 방법으로 제네릭 클래스를 만들고 싶어서요. 

0

whiteship

제네릭한 클래스가 혹시 Class<T> 이런 클래스 말하시는건가요? 그냥 생성자 가지고 인스턴스 생성하면 되는데 무슨 차이가 있을꺼라 생각하시는지요.

클래스 로더가 메소드 영역에 저장하는 것은 바이트코드인가요?

1

83

1

실제 개발 단계에서 이 같은 지식들을 적용할 기회가 있을까요?

0

102

1

코틀린 컴파일에 대해서

0

218

1

RuntimeException

0

340

1

Annotation processor에서 element type을 제한했는데도 다른 타입으로 컴파일이 됩니다...이상하게도..

0

399

1

gradle 사용하시는 분 도움

4

764

1

CGLib를 따라 해보면서 문제점이 있으며, 해결법입니다. JDK17입니다.

6

865

0

Spring Data JPA 동적 프록시를 사용 질문

0

419

1

어노테이션 프로세서 활용 예와 관련해 질문 있습니다.

0

503

1

"자바 언어가 플랫폼에 독립적이다" 라는 것에 대해 옳게 이해했는지 궁금합니다!

1

1133

1

'클래스 로더' 강의에서 클래스 로딩을 설명할 때 잘못된 것 같아 질문드립니다.

3

1258

2

metaspace 질문드립니다.

2

394

0

소스컴파일시점에 MagicMojaProcessor가 사용되면 안되는이유

0

424

0

다이나믹 프록시에서 리플렉션이 어떻게 사용되는거죠?

0

468

1

다이나믹 프록시의 단점

0

350

0

new 와 constructor.newInstance();의 차이

0

663

0

두번 실행해야하는 이유

0

472

0

제가 설명한게 맞는지 봐주실 수 있나요?(jvm설명)

0

445

0

JIT 컴파일러와 인터프리터

1

1011

1

Method.invoke()

0

426

1

site 폴더내에 jacoco 폴더가 생기지 않습니다.

0

987

1

메모리 영역의 구조 질문

0

449

1

GC 설명부분 질문드립니다.

0

489

1

jit 와 인터프리터 질문

1

394

1