簡體   English   中英

需要幫助以避免類型轉換

[英]Need help to avoid type casting

在重構以下代碼時,我需要幫助。 我要在此代碼中解決兩個主要問題:1. Rule1實現中的不安全類型轉換2.實現太多接口

  public interface Rule {
     public void execute(DataProvider dataProvider);
  }

  public interface DataProvider {
     // No common functions as of now 
  }

  public interface Rule1dataProvider extends DataProvider {
     // Functions required by Rule1
  }

  public class Rule1 implements Rule {
     public void execute(DataProvider dataProvider) {
       ADataProvider rule1DataProvider = <ADataProvider>dataProvider;
       // Other logic 
    }
  }

 public class EntityADataProvider implements Rule1DataProvider, Rule2DataProvider... {
    // Overrides functions of Rule 1 and Rule2 
 }

我在這里嘗試使用泛型,但無法找出正確的使用方式來消除類型轉換

使規則通用:

public interface Rule<T extends DataProvider> {
    public void execute(T dataProvider);
}

接着

public class Rule1 implements Rule<Rule1dataProvider> {
    @Override
    public void execute(Rule1dataProvider dataProvider) {            
        // ...
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM