使用されているジェネリックの型をチェックする if ステートメントをメソッドに含めることができるかどうかを知りたいです。Point2D
これについて考えさせられた場合、かなり基本的なクラスとクラスを別の方法で処理したいと考えていPoint3D
ます。にアクセスする必要がある 3D ポイントの場合、Point3d.z
これが問題を引き起こすかどうかはわかりません。私がやりたいことの疑似コード バージョンは次のとおりです。
public <T> void processPoints(T point) {
process(point.x);
process(point.y);
if (T == Point3D) { // What do I do here?
process(point.z); // Will accessing z cause problems?
}
}
実際には、コードprocess
はより複雑でz
依存しx
てy
いるため、コードの重複を避ける方法を探しています。おそらく代わりに関数をオーバーロードする方法を見つけ出すでしょうが、私は好奇心が強いので、ジェネリックについてもっと学ぶことができます.