写一个方法:
public void (类,参数1,参数2) {
}
调用这个方法的类是各个不同的类,但是这些类中都有一个公共的属性isTm,想把这个函数定义成公共的。不同的类传进来,可以根据不同的类,来设置属性isTm的值,应该如何设计和实现?
举例如下:
package basic;
public class Test {
public void updateIsTm(T<? extends Object> pojo) {
if (null != pojo) {
// TODO
//如果传进来的是A a对象,就调用a.setIsTm()方法,修改值。
//如果传进来的是B b对象,就调用b.setIsTm()方法,修改值。
}
}
}
//类A和类B有公共的属性isTm
class A {
String a;
String isTm;
public String getIsTm() {
return isTm;
}
public void setIsTm(String isTm) {
this.isTm = isTm;
}
}
class B {
String b;
String isTm;
public String getIsTm() {
return isTm;
}
public void setIsTm(String isTm) {
this.isTm = isTm;
}
}
谢谢~~
この関数を呼び出したいすべてのクラスがこのインターフェースを実装するようにインターフェースを設計します
リーリー補足:
リーリーこの関数を呼び出すクラスを変更せず、非侵入的な設計を行う場合は、おそらくリフレクションのみを使用できます
この場合、通話のセキュリティを確保するには契約に依存する必要がありますが、これはお勧めできません。
リーリー
出力結果:
タイトルから判断すると、一般的なデザインの必要性がわかりません。
設計の観点からは、isTm 属性を抽象化するインターフェイスまたは抽象クラスを設計する方が良いでしょう。
しかし、これらのクラスを変更できなくなり、共通の親クラスまたはインターフェイスを継承または実装していない場合は、リフレクションのみを使用できます。
しかし、リフレクションを使用するとコードが非常に醜くなり、うまく使用しないと問題を見つけるのが難しくなります。