这可能是一个愚蠢的问题,但我需要知道。 我有一个界面
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
但为什么?
答案 0 :(得分:12)
基本上你有这样的层次结构:
AmazonDynamoDBAsync
^
|
-----------------------------
| |
AmazonDynamoDBAsyncClient AsyncClient
您正在尝试将AmazonDynamoDBAsyncClient
实例投射到AsyncClient
,这是不可能的。那些是兄弟姐妹。这样说:“苹果”和“香蕉”都是“水果”,但“苹果”不是“香蕉”。