動的に使用するように設計された一般的な関数を処理するための「拡張」クラスがあります。つまり、さまざまなクラスや変数で使用できるようにしたいのです (Math クラスのようなものを使用する方法のようなものです)。しかし、私には理解できない小さな問題が発生しました (かなりの数のフォーラムや Web サイトを見てきましたが、うまくいきませんでした)。
私の Extension クラスの関数は次のとおりです。
public void setPlayerFriction(Object objectType, double hspeed, double vspeed){
objectType obj = new objectType();
if(obj.hspeed >= GameWindow.friction){
obj.hspeed -= GameWindow.friction;
}else if(obj.hspeed <= -GameWindow.friction){
obj.hspeed += GameWindow.friction;
}else{
obj.hspeed = 0;
}
if(obj.vspeed >= GameWindow.friction){
obj.vspeed -= GameWindow.friction;
}else if(obj.vspeed <= -GameWindow.friction){
obj.vspeed += GameWindow.friction;
}else{
obj.vspeed = 0;
}
}
そして、私の Player クラスでの関数の使用:
public void runPhysicsEngine(){
Extensions ext = new Extensions();
ext.setPlayerFriction(this,hspeed,vspeed);
}
明らかに、メソッドの引数obj.var -= GameWindow.friction;
where obj
and var
are のようなことを行うことは、私がやりたいことを行う正しい方法ではありません-未解決の型エラーを返すだけです。では、正しい方法は何ですか?動的クラス名から変数にアクセスするにはどうすればよいですか?