当前位置: 首页 > 知识库问答 >
问题:

如何创建接口的实例[重复]

宦正诚
2023-03-14

泛型可译:

public interface GenericTranslatable<E extends 
           BaseEntity, T extends BaseTranslatableEntity> {
    E getEntity();

    T getTranslatable();
}

可翻译的:

public interface ProductWithTranslatable extends 
           GenericTranslatable<TextLabel, TextLabelTranslatable> {
}

我需要获取ProductWithTranslatable的实例,但我不能:

private ProductWithTranslatable productWithTranslatable; // = new ProductWithTranslatable();
...

那么,如何创建实例并填充ths接口的teh相关属性呢?因为我需要在测试方法中给出这个实例作为返回值:

@Test
public void testDemo() {
    when(productTranslatableRepository.findAllTranslatable()).thenReturn(productWithTranslatable);

    // code omitted
}

共有1个答案

仲孙鸿畴
2023-03-14

您永远不能拥有接口的实例。您可以拥有的是实现这样一个接口的具体类的对象。

1)实现类

public class ExampleImplementation implements ProductWithTranslatable {
    @Override       
    public TextLabel getTranslatable() {     
      // Your logic here
    }       

    @Override       
    public TextLabelTranslatable getEntity() { 
      // Your logic here
    }     
}

现在,您可以实例化该类并创建一个可以分配给private ProductWithTranslatable ProductWithTranslatable的对象。

java prettyprint-override">private ProductWithTranslatable productWithTranslatable = new ProductWithTranslatable() {
    @Override       
    public TextLabel getTranslatable() {     
      // Your logic here
    }       

    @Override       
    public TextLabelTranslatable getEntity() { 
      // Your logic here
    }     
}
 类似资料:
  • 问题内容: 我有一个第三方Java库,该对象的接口如下: 我如何像Java匿名类一样在Kotlin中简洁地实现它: 问题答案: 假设接口只有一种方法,则可以使用SAM 如果您有一个接受处理程序的方法,那么您甚至可以忽略类型参数: 如果接口具有多个方法,则语法会更加冗长:

  • 把大象装进冰箱分几步?三步:把冰箱门打开,把大象装进去,关门,搞定~ 新建接口分几步?也是三步: 获取权限 找到一个项目 新建接口 搞定~ 获取权限 新用户登录拥有 个人空间 分组下的全部权限,个人空间分组仅自己可见,因此可以在这里任意试用 YApi 的功能。 除此以外没有任何项目或分组的权限,只能浏览已存在分组下面的公开项目。 如果找不到想找的项目,可能是尚未成为项目成员,此时应联系 项目组长

  • 但这会产生以下错误: 更新 我试图创建一个类,实现,它基本上试图将对象表示为,其中对象可以是任何类型。当前正在使用和操作和方法中的字段,并使用上述方法创建和对象以调用getter和setter方法。我想知道是否可以将这两个单独的方法合并为一个。 可用作到的示例类: 下面是预期的用法:

  • 我已经创建了一个接口并编写了实现。在我的主类中,我为接口“interf5”创建了实例,也为实现类“Demo3”创建了实例。 这两个实例'i'有什么区别 请在下面找到我的代码。

  • 问题内容: 我正在尝试做一些Java注释魔术。我必须说,我仍在追赶注释技巧,并且某些事情对我来说还不太清楚。 所以…我有一些带注释的类,方法和字段。我有一个方法,它使用反射对类进行一些检查并将一些值注入到类中。这一切都很好。 但是,我现在面临的情况是我需要一个注释实例(可以这么说)。所以…批注与常规接口不同,您不能对类进行匿名实现。我知道了。我在这里浏览了有关类似问题的一些帖子,但似乎无法找到所需

  • 我正在使用room和ViewModel开发一个notes应用程序,但在初始化ViewModel内部活动时,我得到了以下信息: JAVAlang.RuntimeException:无法创建类包的实例。笔记。主屏幕。家信 这是我的主要活动 而ViewModel就像- 我的视图模型工厂就像- 我不知道问题出在哪里。帮助我。提前谢谢。 更新:-完整的stacktrace是