这是很难解释的,但我看到无处不在,我找不到任何好的答案.

有一个例子,使其更容易理解:

假设我有一些名为SelfMaker的界面:

public interface SelfMaker {

public SELF getSelf();

}

A有一只狗,可以与另一只狗一起生育.所以狗是一个“SelfMaker”,像这样:

public class Dog implements SelfMaker {

String color;

public String toString() {

return "some " + color + " dog";

}

public Dog procreate(Dog anotherDog) {

Dog son = getSelf();

son.color = color;

return son;

}

@Override

public Dog getSelf() {

return new Dog();

}

}

但是,我有一个国内狗,他是一个狗,但它有一个可爱的家庭命名他.喜欢这个:

public class DomesticDog extends Dog {

private String name;

public String toString() {

return super.toString() + " named " + name;

}

}

现在,我有一些类处理“SelfMaker”的对象,让我们把这个类称为“Couple”.喜欢这个:

public class Couple> {

private T first;

private T second;

public String toString() {

return first.toString() + " and " + second.toString();

}

}

例外:

当我想要创建几个DomesticDogs时出现异常.喜欢这个:

public class CoupleOfDomesticDogs extends Couple{

public DomesticDog procreate(){

DomesticDog son = first.procreate(second);

return son;

}

}

这将在< DomesticDog>上引​​发异常抱怨:绑定不匹配:类型DomesticDog不是有界参数的有效替代< T extends SelfMaker&T>>的类型为< T>

我已经尝试将泛型变量从类别更改为:Couple< T extends SelfMaker>但“儿子”不会是国内家庭(我想让“儿子”成为国内家庭).如果我添加一些演员,那么它将编译,但它将不那么清晰.

所以…这里是一个问题:有没有办法实现这一点,没有铸造和泛化?

java如何引用类_java – 如何引用当前类的类?相关推荐

  1. java引用复制_Java中引用的浅复制和深复制

    Java中除了基本类型int,char,double等的赋值是按照值传递之外,其余的类型和对象都是按照引用进行传递的. 下面来看一个关于引用的例子. package referenceCopy; // ...

  2. java接口文件定义类_Java入门笔记(四)类、包和接口

    一.类 class public class Person{ String name; int age; Person(String name, int age){ this.name = name; ...

  3. java 动态创建实例_java – 有没有办法动态创建类(而不是实例)?

    我有一个关于如何动态创建类(而不是实例)的问题. 在我的项目中,我需要根据配置文件编写几个类似的类. 例如,有一个像这样的 JSON: { { "lang": "pyth ...

  4. java一个包有两个类_java一个包包含多个类 java 类包含类

    一个java工程可以有多个包含main方法的类吗? 每一个java文件都会有一个public static void main(String[] args)作为程序作为入口,一个类有且只有一个,但是可 ...

  5. java xml 实体类_java中的xml与实体类之间的映射

    实体类: package xml; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement public class User ...

  6. java final修饰属性_Java final关键字用来修饰类、方法、属性

    1.final修饰类:这个类不能被继承.如:String类.StringBuffer类.System类. 2.final修饰方法:不能被重写.如:Object类的getClass()方法. 3.fin ...

  7. java 继承对象 初始化_java中具有继承关系的类及其对象初始化顺序

    先说结论 对于具有继承关系的类,它们的类和对象构造顺序为:父类的类构造器() -> 子类的类构造器() -> 父类成员变量的赋值和实例代码块 -> 父类的构造函数 -> 子类成 ...

  8. java 弱引用 集合_java 弱引用集合类WeakHashMap

    java 弱引用集合类WeakHashMap Java集合框架中的WeakHashMap类是Map接口的一种特殊实现.它实现了Map接口,继承了AbstractMap抽象类.它实现了对key的弱引用. ...

  9. java c 引用区别_Java的引用c++的引用和C指针的区别

    Java的引用本质上就是C中的指针,而c++的引用则完全不同:有一个类 class Point { int x; int y; } 同样的一个Point p; 在Java中p表示一个引用,它等同于C语 ...

最新文章

  1. 告别beta版-Google Daydream SDK 1.0正式版发布并支持Unity原生开发
  2. ACwing 245. 你能回答这些问题吗(线段树区间子段最大值+单点修改)
  3. 其中一个页签慢_Word中如何快速定位到页、行、表格、公式,查找与替换方法...
  4. 洛谷P2587 [ZJOI2008] 泡泡堂
  5. 蓝桥杯2015初赛-星系炸弹-日期计算
  6. Android RaingBar评分条的使用
  7. 转 :原码,反码,补码
  8. php适配器设计模式,螃蟹学PHP设计模式之适配器模式
  9. Exchange Server 2013系列五:虚拟化部署
  10. SpringBoot配置swagger2(亲测有效,如果没有配置成功,欢迎在下方留言)
  11. 通过路由器的IP映射来解决,两个不同IP地址的PC机之间的从LAN口到WAN口的单向通讯问题
  12. 语言栈十进制转十六进制_十进制数转二进制、八进制、十六进制等任意进制_C语言「抄作业」...
  13. 服务器php 启动命令_php启动内置服务器
  14. SQLServer2005 没有日志文件(*.ldf) 只有数据文件(*.mdf) 恢复数据库的方法
  15. Attention Mechanisms in Computer Vision: A Survey论文阅读
  16. Ubuntu20.04 安装CUDA驱动和一些系统配置
  17. python实践项目 航空公司客户价值分析
  18. C语言串口一直接收00,串口助手一直接收00;
  19. C# EXCEL 删除行
  20. 第一期码易猿游活动圆满结束 精彩仍将继续

热门文章

  1. 固态和机械硬盘组raid_电脑是固态硬盘好还是机械硬盘
  2. 【java】java 线程组 ThreadGroup
  3. 【maven】The forked VM terminated without saying properly
  4. 【Elasticsearch】java 客户端 获取 termvectors 词频 统计
  5. 80-450-020-原理-索引-索引失效与优化
  6. 【java】java 随机数 Random ThreadLocalRandom SecureRandom
  7. 命令:服务器与CST时间误差8小时的修复方法——timedatectl
  8. mac下hive-1.2.2-src版本的编译
  9. 查看工作组计算机没有服务器,计算机相关:网上邻居问题:当前工作组的服务器列表无法使用...
  10. 玩转Java注解:元注解、内置注解、自定义注解的原理和实现