Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

개발자되기 프로젝트

Generic Method 본문

Java/자료구조

Generic Method

Seung__ 2021. 10. 24. 21:55

1. Generic Method


  • 자료형 매개변수를 메서드의 매개변수나 변환 값으로 가지는 메서드는
  • 자료형 매개변수가 하나 이상인 경우도 있음.
  • Generic class가 아니어도 내부에 generic method는 구현해서 사용이 가능.
  • puiblic<자료형 매개 변수> 반환형 method 이름(자료형 매개변수..){ }

 

 

2. Generic Method 활용


  • 두 점이 주어지면 두 점을 대각선으로 하는 직사각형의 넓이를 구해보자.

2.1 Point


  • Point는 Integer, Double로 구성된다.
public class Point<T, V> {

    T x;
    V y;

    public Point() {
    }

    public Point(T x, V y) {
        this.x = x;
        this.y = y;
    }

    public T getX() {
        return x;
    }

    public void setX(T x) {
        this.x = x;
    }

    public V getY() {
        return y;
    }

    public void setY(V y) {
        this.y = y;
    }
}

 

2.2 GenericMethod

  • Point는 Integer, Double 등 여러 숫자 타입을 받을 수 있다.
  • 이를 모두 double로 변환하여 사용한다.
public class GenericMethod {

    public static  <T extends Number, V extends  Number> double makeRectangle(Point<T, V> p1, Point<T,V> p2){
        double left = ((Number) p1.getX()).doubleValue();
        double right = ((Number) p2.getX()).doubleValue();
        double top = ((Number) p1.getY()).doubleValue();
        double button = ((Number) p2.getY()).doubleValue();

        double width = Math.abs(right - left);
        double height = Math.abs(button - top);

        return width*height;
    }

}

 

3. Test


class GenericMethodTest {

    Point<Integer, Double> p1 = new Point<>(2, 10.0);
    Point<Integer, Double> p2 = new Point<>(5, 5.0);

    @Test
    void genericMethodTest(){

        double size = GenericMethod.makeRectangle(p1, p2);

        System.out.println("size = " + size);
        Assertions.assertEquals(size, 15);
    }
}

 

 

4. GitHub: 211024 Generic Method


 

GitHub - bsh6463/dataStructure

Contribute to bsh6463/dataStructure development by creating an account on GitHub.

github.com

 

'Java > 자료구조' 카테고리의 다른 글

List 인터페이스를 구현한 클래스, 활용  (0) 2021.10.24
컬렉션 프레임워크  (0) 2021.10.24
<T extends Class> 사용  (0) 2021.10.24
Generic Programming  (0) 2021.10.24
Queue 구현  (0) 2021.10.24
Comments