同様のメソッドを持つ2つのクラスAとBがあります。クラスオブジェクトのいずれかを引数として取り、そのクラスのメソッドを呼び出すことができるジェネリックメソッドを書く方法。Javaの引数としてオブジェクトを持つ汎用メソッド
編集:クラスA、Bを制御できません。引数としてのみ取得します。だから私はそれらを追加変更することはできません。 2つのクラスが共通のインターフェースを実装していない場合は
public class methods {
public static void main(String[] args) {
new methods().getName(new B());
new methods().getName(new A());
}
private <T> void getName(T obj){
// obj.getName()
}
}
class A {
String name = "ClassA";
public void getName(){
System.out.println(name);
}
}
class B {
String name = "ClassB";
public void getName(){
System.out.println(name);
}
}
インターフェイスへのプログラム。 –
AとBを共通のインタフェースを実装し、そのインタフェースをメソッドの引数として使用します。これは単なる多型です。それにはジェネリックスは必要ありません。 –
編集後:反映のみがそれを行うことができます。コンパイラがそのようなオブジェクトのさまざまな種類を処理する方法はありません。彼らは同じタイプである必要があります。 –