…如何限制A的实现在方法签名中使用B的某个实现?

用例

这是一个Unit接口和两个实现它的枚举:

public interface Unit { ... }

public enum ForceUnit implements Unit { ... }

public enum MassUnit implements Unit { ... }

属性界面使用哪个:

public interface Property {

public void setUnit( Unit unit ); // for example

}

public class Force implements Property { ... }

public class Mass implements Property { ... }

在这里我想要能够执行:

> Force在setUnit签名中只使用ForceUnit

> Mass在setUnit签名中只使用MassUnit

当我尝试这样做,Eclipse抱怨:

The type Mass must implement the inherited abstract method Property.setUnit(unit)

并及时提出两个快速修复:

>使类抽象,这不是一个选项,因为我想要能够像Mass mass = new Mass();

>使用@Override注释添加未实现的方法.我不知道这是否是正确的解决方案,但对我来说这个笨拙的笑容.

问题

>我需要实现什么选择?仿制药的使用在这里有帮助吗?

为什么把类标记为抽象的方式来解决问题?

java 方法里面定义接口_java – 当接口A在其方法签名中定义接口B时相关推荐

  1. java 接口 签名机制_java – 当接口A在其方法签名中定义接口B时

    -如何限制A的实现在方法签名中使用B的某个实现? 用例 这是一个Unit接口和两个实现它的枚举: public interface Unit { ... } public enum ForceUnit ...

  2. Java啤酒生产系统描述_Java描述设计模式(03):工厂方法模式

    一.工厂方法模式 1.生活场景 系统常见的数据导出功能:数据导出PDF.WORD等常见格式. 2.工厂方法模式 是类的创建模式,又叫做虚拟构造子(Virtual Constructor)模式或者多态性 ...

  3. java未知变量的类型_Java语言中类、变量及方法的声明 | 学步园

    类声明 [ public][ abstract][ final] class NameOfClass [ extends Super][ implements Interfaces] pubilc:声 ...

  4. java for循环创建线程_Java创建线程的两种方法

    大多数情况,通过实例化一个Thread对象来创建一个线程.Java定义了两种方式: 实现Runnable 接口: 可以继承Thread类. 下面的两小节依次介绍了每一种方式. 实现Runnable接口 ...

  5. java构造方法可以重载吗_Java基础教程之构造器与方法重载

    在方法与数据成员中,我们提到,Java中的对象在创建的时候会初始化(initialization).初始化时,对象的数据成员被赋予初始值.我们可以显式初始化.如果我们没有给数据成员赋予初始值,数据成员 ...

  6. java定义构造方法_JAVA基础学习之路(三)类定义及构造方法

    类的定义及使用 一,类的定义 classBook {//定义一个类intprice;//定义一个属性intnum;public static int getMonney(int price, intn ...

  7. java repaint 重画图形_Java Graphics的paint和repaint方法

    调用paint的一般是repaint()或当显示器刷新的时候调用的类似repaint()的类.    当对于桌面执行了某类操作,改变了桌面上的图象时,jvm收到界面被调整的信息,此时会调用visibl ...

  8. java 根据日期获取天数_java获取日期之间天数的方法

    //获取两个日期之间的天数 private int daysBetween(Date now, Date returnDate) { Calendar cNow = Calendar.getInsta ...

  9. java遍历是什么意思_Java遍历集合的几种方法分析(实现原理、算法性能、适用场合)...

    概述 Java语言中,提供了一套数据集合框架,其中定义了一些诸如List.Set等抽象数据类型,每个抽象数据类型的各个具体实现,底层又采用了不同的实现方式,比如ArrayList和LinkedList ...

最新文章

  1. (一)Android Studio 安装部署 华丽躲坑
  2. HTTP 错误 404.2 - Not Found
  3. Linux服务源码安装后开机自启动04-php-fpm
  4. 控制 WebBrowser 控件的外观和行为
  5. 旋钮编码器c代码_人脸合成效果媲美StyleGAN,而它是个自编码器
  6. springboot No Java compiler available for configuration options compilerClassName
  7. 多线程面试题之原子性、可见性、有序性
  8. php foreach 收邮件_php机制本身不提供多线程的操作,有了swoole就不一样了
  9. CentOS7.4中搭建lnmp环境
  10. GoogLenet网络解读及代码实现(Pytorch)
  11. python调用go并把结果传回go_从Go调用Python函数并获取函数返回值
  12. 【训练记录】2013-2014 Petrozavodsk Winter Training Camp, Moscow SU Trinity Contest @homework-7
  13. java 匿名函数_Java8学习系列之匿名函数Lambda
  14. 2023计算机毕业设计SSM最新选题之java二手车交易平台设计6b7sc
  15. 【C++篇】STL常见容器String的模拟实现
  16. vue 点击打开pdf
  17. 密码锁屏保护隐私更安全,这款口碑好的手机浏览器值得拥有
  18. RGBA 编码为 YUV420SP【NEON】
  19. 网格设计版式设计_网页设计展示精美的版式
  20. 微信公众平台的运营管理

热门文章

  1. CocoaPods私有库搭建的记录
  2. web-view 跳转小程序页面 网页跳转小程序
  3. 正则匹配出字符串中两串固定字符区间的所有字符
  4. 05-自己创建mapmodel自定义迁移方式
  5. javascript推荐书籍
  6. 怎么获得combobox的valueField值
  7. 解决eclipse ctrl+鼠标左键不能用
  8. VC++技术内幕(三)
  9. 线性代数与矩阵论 定理 1.5.6 拉格朗日插值公式
  10. Swift3.0和OC桥接方法