java 方法里面定义接口_java – 当接口A在其方法签名中定义接口B时
…如何限制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注释添加未实现的方法.我不知道这是否是正确的解决方案,但对我来说这个笨拙的笑容.
问题
>我需要实现什么选择?仿制药的使用在这里有帮助吗?
为什么把类标记为抽象的方式来解决问题?
相关文章:

ANDROID_MARS学习笔记_S01_011ProgressBar
文档是这样来设置样式 <ProgressBarandroid:layout_width"wrap_content"android:layout_height"wrap_content"style"android:style/Widget.ProgressBar.Small"android:layout_marginRight"5dp" /> 1.xml <RelativeLayout xml…

怎样使phpnow1.5.6-1支持firebird
(以下部分步骤可能不是必要,自己测试。) 环境:windows,phpnow1.5.6-1 默认支持mysql,修改配置文件,使之支持firebird。 php.ini 的位置 : php-5.2.14-Win32\php-apache2handler.ini …

php 引入其他文件中的变量
在php的开发过程中,如果所有的代码都写在同一个文件中的话,那么文件中的代码数量是否太多了,一来不便维护,二来对于编辑器也是个负担include("class0.php");在php文件的首部引入即可;转载于:https://www.cnblogs.com/wrhbk/p/10985…

java struts技术_java技术框架之:struts
一:struts的优缺点优点:1、开源:2、利用Struts提供的taglib可以大大节约开发时间。3、维护扩展比较方便。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。4、表现与逻辑分离5、表…

BZOJ 2780: [Spoj]8093 Sevenk Love Oimaster( 后缀数组 + 二分 + RMQ + 树状数组 )
全部串起来做SA, 在按字典序排序的后缀中, 包含每个询问串必定是1段连续的区间, 对每个询问串s二分RMQ求出包含s的区间. 然后就是求区间的不同的数的个数(经典问题), sort queries BIT 就行了.时间复杂度O(N log N). 速度垫底了QAQ 你们都会SAM。。。。----------------------…

centos7下Gitlab+Jenkins部署持续集成CI环境
1.基本环境 主机:win10,IP:192.168.0.111;部署机器centos7,IP:192.168.0.65;内存推荐到8G,实测需要6G以上,以免出现内存不够用而报错。 2.安装gitlab需要的组件 [rootloc…

VIM7.3添加中文帮助文档
安装中文帮助文档之前首先执行下列操作:在home目录下列新建文件夹 :.vim ------------------>.vim是一个隐藏文件,不要漏了 “.”.vim/plugin ---------->.vim目录下的plugin文件夹.vim/doc ------------->.vim目录下的doc文件夹.v…

安卓java代码标签_Android实现动态添加标签及其点击事件
在做Android开发的时候,会遇到动态添加标签让用户选择的功能,所以自己写了个例子,运行效果图如下。标签可以左右滑动进行选择,点击的时候,会弹出toast提示选择或者取消选择了哪个标签。通过动态添加TextView作为标签&a…

Windows 7 SDK Fails to Install with Return Code 5100 (GRMSDK_EN_DVD.iso)
来源:http://support.microsoft.com/kb/2717426/de 不对全文做翻译了,总结一下: 原因:电脑上已经安装了新版本的Visual C 2010 Redistributable运行库 解决办法:卸载Visual C 2010 Redistributable,然后再安…

Android动画效果translate、scale、alpha、rotate详解
动画类型Android的animation由四种类型组成XML中 alpha渐变透明度动画效果scale渐变尺寸伸缩动画效果translate画面转换位置移动动画效果rotate画面转移旋转动画效果JavaCode中 AlphaAnimation渐变透明度动画效果ScaleAnimation渐变尺寸伸缩动画效果TranslateAnimation画面转换…

对javscript中Object.defineProperty的理解
自己在使用vue的过程中经常会用到听到数据双向绑定这个词,而且我们还可以直接通过调用this.msg(this表示vue实例),来获取data上的数据,以前一直不太明白为什么可以这样获取,直到有一天我在论坛里看到了寻找海蓝96这位大佬写的文章,才明白其原…

java kafka 集群消费_kafka集群搭建和使用Java写kafka生产者消费者
转自:http://chengjianxiaoxue.iteye.com/blog/21904881 kafka集群搭建1.zookeeper集群 搭建在110, 111,1122.kafka使用3个节点110, 111,112修改配置文件config/server.propertiesbroker.id110host.name192.168.1.110log.dirs/usr/local/kafk…

Java之替换“\n”符号
开发平台:Android 4.1.2 在去除字符串中的换行符(\n)的时候,写成str.replace("\\n", "")才能正确执行。str.replace("\n","") ,str.replaceAll("\\n",""),str.repla…

ThinkPHP项目笔记之登录,注册,安全退出篇
1.先说注册 a.准备好注册页面,register.html,当然一般有,姓名,邮箱,地址等常用的。 b."不要相信用户提交的一切数据",安全,安全是第一位的。所以要做判断,客户端要做基本判断,为了防止…

c语言第八次作业
1.选择法排序。输入一个正整数n(1<n<10),再输入n个整数,将他们从大到小排序后输出。试写出相应程序。 #include<stdio.h>int main (void){int i,index,k,n,t;int a[10];printf("输入数据的个数n:");scanf("%d",&n);…

java线程池的工作原理_Java 线程池的介绍以及工作原理
在什么情况下使用线程池?1.单个任务处理的时间比较短2.将需处理的任务的数量大使用线程池的好处:1. 降低资源消耗: 通过重复利用已创建的线程降低线程创建和销毁造成的消耗。2. 提高响应速度: 当任务到达时,…

.NET 程序设计实验 含记事本通讯录代码
实验一 .NET 程序设计基本流程 【实验内容】 一、控制台、Windows 应用程序、ASP.NET 程序开发流程 1、熟悉开发平台 2、分别开发控制台、Windows 应用程序、ASP.NET 程序下显示“Hello world!”的应用程序, 掌握新建、基本输入输出、程序流程、程序调试…

复制构造函数(拷贝构造函数)
也许很多C的初学者都知道什么是构造函数,但是对复制构造函数(copy constructor)却还很陌生。对于我来说,在写代码的时候能用得上复制构造函数的机会并不多,不过这并不说明复制构造函数没什么用,其实复制构造…
VMware上实现LVS负载均衡(NAT)
本文LVS的实现方式採用NAT模式。关于NAT的拓扑图请參照我的上一篇文章。本文纯粹实验。NAT在生产环境中不推荐使用。原因是Load Balancereasy成为瓶颈! 1.VMware9上安装CentOS-6.5-x86_64-minimal版 2.安装完毕后将其hostname设置为LVS-master hostname LVS-master …

java se13安装教程_在Linux发行版中安装Java 13/OpenJDK 13的方法
本文介绍在Linux发行版Ubuntu 18.04/16.04、Debian 10/9、CentOS 7/8、Fedora 31/30/29中安装Java 13/OpenJDK 13、Java SE Development Kit 13的方法。在Ubuntu 18.04/16.04、Debian 10/9、CentOS 7/8、Fedora 31/30/29中安装OpenJDK 13访问JDK 13版本页面以下载最新的版本&am…

Java api 入门教程 之 JAVA的IO处理
IO是输入和输出的简称,在实际的使用时,输入和输出是有方向的。就像现实中两个人之间借钱一样,例如A借钱给B,相对于A来说是借出,而相对于B来说则是借入。所以在程序中提到输入和输出时,也需要区分清楚是相对…

如何编辑PDF文件,PDF编辑器如何使用
如何编辑PDF呢?其实大多数人都不知道该如何下手,部分人会选择将PDF文件转换成Word然后进行编辑,其实这种方法比较麻烦,大大拉低了我们的工作效率。如果想要提高工作效率更加快速的编辑PDF文件,就可以选择迅捷PDF编辑器…

hdu 4366 Card Collector (容斥原理)
http://acm.hdu.edu.cn/showproblem.php?pid4336题意:有 n 张卡片 ,每张卡片出现的 概率 是 pi 每包至多有 一张卡片 ,也有可能没有 卡片 。求 需要买多少包 才能集齐 n 张卡片 ,求包数的 期望 。题解 : 容斥原理…

java语言二维数组转置_java实现二维数组转置的方法示例
本文实例讲述了java实现二维数组转置的方法。分享给大家供大家参考,具体如下:这里在文件中创建Test2、Exchange、Out三个类在Exchange类中编写exchange()方法,在方法中创建两个数组arraryA、arraryB,arraryB[j][i]arraryA[i][j]实…

使用Apache cxf 和Spring在Tomcat下发布Webservice指南
转载 http://blog.csdn.net/zhangzhaokun/article/details/4750021 最近学习了如何使用apache cxf和Spring发布webservice,虽然网上的资料很多,但是没有一个文档可以让读者按照操作步骤来实现完整的发布流程,都需要多篇文件杂合在一起&#x…

srcache_nginx redis 构建缓存系统应用一例
为什么80%的码农都做不了架构师?>>> srcache_nginx模块相关参数介绍,可以参见 《memc_nginxsrcache_nginxmemcached构建透明的动态页面缓存》。 redis是一种高效的key-value存储。 下面举一例应用,看配置: upstream r…

mysql 删除 修改密码_Mysql数据库root密码忘记了,如何在不删除Mysql的情况下修改密码...
1.cmd中使用 net stop mysql 命令停掉正在运行的mysql 数据库。2.在本地中复制Mysql数据库的安装路径一直到bin路径下。3.到cmd执行 "pushd 步骤2复制路径" 的命令,就会到Mysql数据库安装的bin路径下。4.紧接著执行 mysqld --skip-grant-tables 命令…

通用权限管理系统组件 (GPM - General Permissions Manager) 权限管理以前我们都是自己开发,可是到下一个系统又不适用,又改,加上人员流动大,管理很混乱...
为什么80%的码农都做不了架构师?>>> 权限管理以前我们都是自己开发,可是到下一个系统又不适用,又改,加上人员流动大,管理很混乱 Ψ吉日嘎拉 采用通用权限管理系统,这些烦恼就少了很多了&#x…

【小白的CFD之旅】16 流程
那天听了小牛师兄关于CFD应用的四种境界的说法后,小白发现自己连第一种境界都算不上,自己对于CFD还只是停留在做了少数几个案例的基础上,可以说是对其一无所知。不过小白不是那种遇到挫折就退缩的人,他决定沿着黄师姐的方法从软件…

XWiki 4.3 正式版发布
XWiki 4.3 正式版发布了,工作空间、扩展管理器、分发向导和 REST API 做了很多改进,改进了翻译和新的体验的 Solr 搜索。 XWiki是一个由Java编写的基于LGPL协议发布的开源wiki和应用平台。它的开发平台特性允许创建协作式Web应用,同时也提供了…