지네릭 타입의 형변환과 제거
·
자바/지네릭스
1. 지네릭 타입과 원시 타입의 형변환 - 아래의 코드처럼 지네릭 타입과 원시 타입의 형변환은 항상 가능하지만, 경고가 발생한다. Box box = null; Box objBox = null; box = (Box) objBox; // 지네릭 타입 -> 원시 타입 (경고 발생) objBox = (Box) box; // 원시 타입 -> 지네릭 타입 (경고 발생) - 단, 아래의 코드처럼 대입된 타입이 다른 지네릭 타입 간에는 형변환이 불가능하다. Box objBox = null; Box strBox = null; objBox = (Box) strBox; // 에러 발생 strBox = (Box) objBox; // 에러 발생 - 그러므로, 아래의 코드처럼 지네릭으로는 다른 지네릭으로 형변환할 수 없다. Bo..
지네릭 메서드
·
자바/지네릭스
1. 지네릭 메서드란? - 메서드의 선언부에 지네릭 타입이 선언된 메서드를 '지네릭 메서드' 라고 부른다. - 앞서 했던 예제 메서드 Collections.sort() 또한 지네릭 메서드이다. - 지네릭 클래스에 정의된 타입 매개변수와 지네릭 메서드에 정의된 타입 매개변수는 전혀 별개의 것이다. - 아래의 코드를 통해 이해하자. class FruitBox{ ... static void sort(List list, Comparator
와일드 카드
·
자바/지네릭스
1. 와일드 카드란? - Juicer라는 클래스가 존재하고 static 메서드로 makeJuice()가 있다고 가정해보자. class Juicer{ static Juice makeJuice(FruitBox box) { // 으로 지정 String tmp = ""; for(Fruit f : box.getList()) tmp += f + " "; return new Juice(tmp); } } ( Juice 클래스는 지네릭 클래스가 아닌데다, 지네릭 클래스라고 해도 static 메서드에는 타입 매개변수 T를 매개변수에 사용할 수 없으므로 아예 지네릭스를 적용하지 않던가, 위와 같이 같이 로 지정해줘야 한다. ) ( 그래서 아래와 같이 fruitBox는 컴파일이 잘 되지만, appleBox에 대해서는 컴파일 ..
BitmapDrawable을 통한 스크롤 뷰 구현
·
안드로이드 with 자바/자잘한 문제들
1. 구현해야 할 것 2. 제약조건 (1) imageView 하나를 써서 BitmapDrawable로 구현할 것. (2) 수평으로 스크롤 뷰를 만들 것. (3) 버튼을 누를 경우, 위와 같은 이미지가 나오며 수평으로 스크롤이 가능해야 함. (4) 다시 버튼을 누를 경우, 다른 이미지가 등장하게 됨. ( 또 버튼을 누르면 다시 원래 첫 이미지로 돌아가게 되면서 무한 반복함. ) 3. java 소스코드 ( 아래는 MainActivity.java의 코드이다. ) package com.example.exercise001; import android.content.res.Resources; import android.graphics.drawable.BitmapDrawable; import android.os.Bu..