这可能是一个愚蠢的问题,但我需要知道.我有一个界面作为
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
,这是不可能的.那些是兄弟姐妹.这样说:"苹果"和"香蕉"都是"水果",但"苹果"不是"香蕉".