TEST
dolphago / github-follower-tracker Goto Github PK
View Code? Open in Web Editor NEWCheck github follow/unfollow tracking service
License: MIT License
Check github follow/unfollow tracking service
License: MIT License
TEST
Follower, Following, Neighbor 모두 비슷한 데이터 형태들을 가지고 있어서,
MappedSuperclass를 상속시키고 제네릭으로 T extends {superclass} 를 만들어서 빌더 패턴으로 만들려고하니,
컴파일 시점까지는 괜찮지만, 런타임이 되자마자 엄청난 에러가 뿜뿜이다. abstract class인 super class로 생성자를 생성할 수 없다고 한다.
내가 생각했을 땐, 컴파일 시점에는 빌더를 활용하기 위해서 abstract class의 builder를 사용하다가
런타임 시점에 자식의 생성자를 쓰니까 문제가 없을 것이라고 생각했는데, 뭐 때문인거지, super 생성자 때문인가?
흠흠, 이전에 근데 잘 동작했었던 118번째 라인 을 보면, 제네릭으로 받고 있는 것 까지는 전혀 문제가 없어 보인다. abstract 객체를 만드는게 아니니깐 저거는, 그저 상위 타입이니까(인터페이스처럼).
//TODO : 중복 코드를 줄이고 싶어서 다음과 같이 쓰고 싶은데, 에러 뿜뿜이다. 좋은 방법을 고안해보자.
// private <T extends BaseEntity> List<T> create(List<MemberDto> memberDtos, List<Neighbor> neighbors, Class<T> cls) {
// List<T> list = new ArrayList<>();
// for (MemberDto memberDto : memberDtos) {
// T t = MemberDto.toEntity(memberDto, cls);
// list.add(t);
// }
//
// for (Neighbor neighbor : neighbors) {
// T convert = convert(neighbor, cls);
// list.add(convert);
// }
// return list;
// }
//
// private <T extends BaseEntity> T convert(BaseEntity neighbor, Class<T> cls) {
// return (T) T.builder()
// .url(neighbor.getUrl())
// .githubLogin(neighbor.getGithubLogin())
// .build();
//
// }
// public static <T extends BaseEntity> T toEntity(MemberDto memberDto, Class<T> cls) { // 이런식으로 구현하고 싶은데 ㅠ.
// return cls.cast(T.builder()
// .githubLogin(memberDto.getGithubLogin())
// .url(memberDto.getUrl())
// .build());
// }
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.