![](/img/trans.png)
[英]How is downcasting/upcasting done between 2 interfaces in Selenium WebDriver in Java in Excel
[英]Java upcasting and downcasting by interfaces
這可能是一個愚蠢的問題,但我需要知道。 我有一個界面作為
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBAsync;
public interface AsyncClient extends AmazonDynamoDBAsync{
}
我有一個ClientCreator類,它有該方法
import com.company.clients.AsyncClient;
public class ClientCreator {
public static AsyncClient getAsyncClient() throws FileNotFoundException, IllegalArgumentException, IOException{
AmazonDynamoDBAsync client = new AmazonDynamoDBAsyncClient(getCredentials());
client.setRegion(getRegion());
return (AsyncClient)client;
}
.
.
.
這里AmazonDynamoDBAsyncClient實現了AmazonDynamoDBAsync,而AsyncClient擴展了AmazonDynamoDBAsync ,但是這段代碼無法正常工作並拋出
com.amazonaws.services.dynamodbv2.AmazonDynamoDBAsyncClient無法強制轉換為com.company.clients.AsyncClient
但為什么呢?
基本上你有這樣的層次結構:
AmazonDynamoDBAsync
^
|
-----------------------------
| |
AmazonDynamoDBAsyncClient AsyncClient
並且您正在嘗試將AmazonDynamoDBAsyncClient
實例轉換為AsyncClient
,這是不可能的。 那些是兄弟姐妹。 這樣說:“蘋果”和“香蕉”都是“水果”,但“蘋果”不是“香蕉”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.