Java의 일반적인 메소드를 이해하려고합니다. 내가 대신 AREA2 (또는 그 반대)의 영역 1을 구현/사용해야하는 이유를 이해/볼 수Java 일반 메소드 이해
public class GenericTest {
interface Shape {
public long area();
}
public static class Triangle implements Shape
{
private long base, height;
public long area() { return (base * height)/2; }
}
public static class Rectangle implements Shape
{
private long width, height;
public long area() { return width * height; }
}
public <T extends Shape> long area1(T shape)
{
return shape.area();
}
public long area2(Shape shape)
{
return shape.area();
}
}
: 다음 코드를 감안할 때. 내가 놓친 게 있니? 두 가지 방법 모두 똑같은 일을하지 않습니까? 그것은 내게 남아있다
은 비트는 area1
방법을 만들기위한 좋은 이유가 없습니다 자바
이 경우 제네릭을 사용하는 것은 의미가 없습니다. ** 유형을 알지 못하면 ** 저장 **해야합니다. –
이 경우 @ LukasKnuth는 영역 2의 일반 버전을 만들지 않아도된다고 말했습니다(). 그러나 현재의 오라클 문서는 generics에 대한 훌륭한 예제를 보여줍니다. 와일드 카드 제네릭 예제 또한 혼란을 명확히하는 데 도움이 될 수 있습니다. http://docs.oracle.com/javase/tutorial/extra/generics/methods.html –
에서 C++과 비슷한 제네릭을보고있었습니다. 템플릿. 여기에 다른 대답이 없다는 것을 지적한 중요한 점은 (그리고 아마도 내가 놓치고있는 것은 그들이 어떤 종류인지를 모를 때 ** 그들이 사용된다는 개념이라는 것입니다. 정확히 어느 것이 맞습니까 내가 대답을 찾고있는 곳 :-) – Xaq