我不確定如何運行通用類型Point的方法。假設以下類通用類型的運行方法
class Point1 {
double x, y;
public Point1 (double x_, double y_) {x=x_; y = y_;}
public double getX() {return x;}
public double getF1() {return x;}
}
class Point2 {
double lat, lon;
public Point2 (double lat_, double lon_) {lat = lat_; lon = lon_;}
public double getLat(){return lat;}
public double getF1() {return lat;}
}
共享相同的方法getF1()和一個方法
public <Point> void test(List<Point> points) {
for (Point point:points)
double x = point.getF1(); //Error Can not find symbol getF1()
}
public static void main (String [args]) {
List <Point1> points = new ArrayList<>();
test(points);
}
如何運行與POINT1類型爲普通類型點(POINT = POINT1相關聯的方法getF1() )?是否有可能使用的接口
public interface ICoord {
double f();
和
public <Point> void test(List<Point> points, ICoord function) {
for (Point point:points)
double x = point.function.f();
}
'Point1'和'Point2'必須有一些通用的超類或接口才能夠一般地引用它們。 – Taylor
什麼是'Point'?沒有看到它的定義。 –
@Sabir:這裏Point = Point1 – justik