Ich bin mir nicht sicher, wie Sie eine Methode des generischen Typs Point ausführen. Angenommen, die folgenden KlassenRun-Methode eines generischen Typs
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;}
}
die gleiche Methode getF1() und ein Verfahren zu teilen
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);
}
Wie die Methode getF1() mit dem Point1 Typ für den generischen Typ (Punkt = Point1 zugeordnet laufen) Ist es möglich, die Schnittstelle zu verwenden
public interface ICoord {
double f();
und
public <Point> void test(List<Point> points, ICoord function) {
for (Point point:points)
double x = point.function.f();
}
'Point1' und' Point2' müssten eine gemeinsame Oberklasse oder Schnittstelle haben, um sich auf sie allgemein beziehen zu können. – Taylor
Was ist 'Punkt'? Sehe seine Definition nicht. –
@Sabir: hier Punkt = Punkt1 – justik