私には以下のインタフェースがあり、メソッドはありません。タイプ境界を使用して、インタフェースに存在しないクラスのメソッドを呼び出す
public interface IMetric {
}
私は以下の方法で実装しています。
public class PerfGauge implements IMetric {
public PerfGauge(String name, final Object gaugeSource) {
}
print() {
System.out.println("Hello");
}
}
IMetricを型として持つPerfGaugeクラスのメソッドを呼び出すにはどうすればよいですか?私はこれがタイプ境界を介して行われると信じていますか?もしそうなら、誰かが例を助けることができますか?である私は何をしたい
、
IMetric metric = new PerfGauge(name,source);
metric.print();
を '' IMetric'にprint'追加しないのはなぜ? –
メソッドがインタフェースにない場合は、 'metric'変数を実装クラスの型にキャストすることによってのみメソッドを呼び出すことができます。 – Eran
これを行う唯一の方法は、 'IMetric'の' interface'メソッドに 'print'メソッドを含めるか' instanceof'演算子を使って 'metric'が' PerfGauge'のインスタンスであるかどうかをチェックし、 : '((PerfGauge)メトリック).print();'。 'メトリクス'インターフェースが 'print'メソッドについて知りません。 – SomeJavaGuy