use of com.example.demo.entity.order29.Member in project eomcs-java by eomcs.
the class Exam0310 method main.
public static void main(String[] args) {
A<String, Integer, Member> obj = new A<>();
obj.v1 = new String("Hello");
obj.v2 = Integer.valueOf(100);
obj.v3 = new Member("홍길동", 20);
// 지정된 타입이 아닌 타입의 값을 설정한다면,
// obj.v1 = new Member("홍길동", 20); // 컴파일 오류!
// obj.v2 = new String("Hello"); // 컴파일 오류!
// obj.v3 = Integer.valueOf(100); // 컴파일 오류!
}
use of com.example.demo.entity.order29.Member in project openstack4j by ContainX.
the class ImageV2Tests method testUpdateMember.
public void testUpdateMember() throws IOException {
respondWith(MEMBER_UPDATE_JSON);
String imageId = "4b434528-032b-4467-946c-b5880ce15c06";
String memberId = "66cabdfb14bd48d48402f7464bda7733";
Member.MemberStatus ms = Member.MemberStatus.ACCEPTED;
Member member = osv3().imagesV2().updateMember(imageId, memberId, ms);
assertNotNull(member);
assertEquals(member.getImageId(), imageId);
assertEquals(member.getMemberId(), memberId);
assertEquals(member.getStatus(), ms);
}
use of com.example.demo.entity.order29.Member in project openstack4j by ContainX.
the class ImageV2Tests method testListMembers.
public void testListMembers() throws IOException {
respondWith(MEMBERS_JSON);
String imageId = "4b434528-032b-4467-946c-b5880ce15c06";
List<? extends Member> members = osv3().imagesV2().listMembers(imageId);
assertNotNull(members);
Member member = members.get(0);
assertEquals(member.getImageId(), "4b434528-032b-4467-946c-b5880ce15c06");
assertEquals(member.getMemberId(), "66cabdfb14bd48d48402f7464bda7733");
}
use of com.example.demo.entity.order29.Member in project eomcs-java by eomcs.
the class Exam0220 method main.
public static void main(String[] args) {
// 1) 제네릭이 적용되지 않은 ObjectBox 클래스 이용
ObjectBox b1 = new ObjectBox();
ObjectBox b2 = new ObjectBox();
ObjectBox b3 = new ObjectBox();
ObjectBox b4 = new ObjectBox();
// ObjectBox에 값 넣기
b1.set(new Member("홍길동", 20));
// new String("Hello").intern()
b2.set("Hello");
b3.set(new Date());
// auto-boxing ==> b4.set(Integer.valueOf(100)) 문장으로 변경된다.
b4.set(100);
// 이렇게 ObjectBox에 다양한 타입의 값을 넣을 수 있는 이유?
// => set()의 파라미터 타입은 Object 이기 때문이다.
// => Object는 모든 자바 객체를 받을 수 있다.
//
// ObjectBox 객체에서 값 꺼내기
// => 값을 꺼낼 때마다 형변환 해야 한다.
//
Member v1 = (Member) b1.get();
System.out.println(v1);
String v2 = (String) b2.get();
System.out.println(v2);
Date v3 = (Date) b3.get();
System.out.println(v3);
// auto-unboxing ==> ((Integer) b1.get()).intValue();
int v4 = (int) b4.get();
System.out.println(v4);
// ObjectBox 의 이점
// - 이전 방식에 비해 객체의 타입 별로 Box 클래스를 구분해서 쓰지 않으니 코딩이 편하다.
// - 이렇게 ObjectBox 클래스의 인스턴스 변수를 Object로 선언하니
// 다양한 객체를 보관할 수는 있다.
//
// ObjectBox 의 단점
// - MemberBox나 StringBox, IntegerBox 처럼 특정 타입의 객체로 제한할 수 없다.
// - 또한 값을 꺼낼 때 원래의 타입으로 바꾸기 위해 형변환(type casting) 해야 하는 불편함이 있다.
// 그렇다고 이전처럼 각 타입 별로 Box 클래스를 정의하는 것은 바람직하지 않다.
//
// 이런 문제점을 해결하기 위해 나온 문법이 "제네릭(Generic)"이다.
// 제네릭 문법을 이용하면 한 개의 클래스가 다양한 타입의 객체를 제한적으로 다룰 수 있다.
// 즉 각 타입 별로 클래스를 정의해야 하는 것을 한 개의 클래스로 만들 수 있다.
}
use of com.example.demo.entity.order29.Member in project eomcs-java by eomcs.
the class Exam0230 method main.
public static void main(String[] args) {
// 2) 제네릭이 적용된 Box 클래스 이용
// - 먼저 Box가 어떤 타입의 값을 다룰 것인지 지정해야 한다.
Box<Member> b1 = new Box<Member>();
// - 인스턴스를 생성할 때 지정한 타입의 객체를 넘긴다.
b1.set(new Member("홍길동", 20));
// - 값을 꺼낼 때 형변환 할 필요가 없다.
Member m = b1.get();
System.out.println(m);
// - 제네릭에서 지정한 타입이 아닌 경우 컴파일 오류!
// b1.set(new String("Hello"));
// b1.set(100);
}
Aggregations