java的class和object_Java中Class/Object/T的关系
Object 对象
Object是Java中的基类,大部分的对象都是继承于这个类。
public class Object {
....
public native int hashCode();
public boolean equals(Object obj) {
...
}
public String toString() {
...
}
}
以上是其定义,可以看出来其定义了一些基础方法,比如hashCode等等。
Class类的类
「Class类」是其本身也是一个类,且不可以继承,它指向的是「实例的定义」是「类的类」
注意本文中「Class类」和「Class」意思不同,前者指的是『public final class Class』,后者值得是『类这个概念』
public final class Class implements java.io.Serializable,
java.lang.reflect.GenericDeclaration,
java.lang.reflect.Type,
java.lang.reflect.AnnotatedElement {
......
}
可以看得出其本身实现了一些接口,主要是反射中的。
T 模板
T是代表模板,可以「代表任何Object」,其主要是放在各种单书名号中,一般是类名或者问号。
问号代表不确定
名字代表确定
T则代表任意一个「继承于Object的类」
T控制返回值
当要使用T时需要通过「中括号T」来声明,其相当于finally或者static之类的限定符号
public finally static T method(Class clazz) {
return T;
}
除去方法的限定词
T method(Class clazz);该方法是一个返回值为T,入参为任意「Class类」的方法
返回值根据传入的对象确定
返回的是「Class类」的一个实例化Object。
控制容器内容public static List select(T object);
根据输入参数T可以保证返回的List对象中全部都为T的实例。
T用于强行转换
由于T本身作为一个模板,所以也可以用于强行类型转换
List list = (List) object;
resultList.add((T) BeanMapperUtil.objConvert(tempDO,objectBO.getClass()));
Class/Class类/Object/T的逻辑关系
如上总结
「Class类」是一个「Class」和Object同一级别,且不可以被继承
Object代表对象,是实例,实例就是某个「Class」的new实例化
T则是代表任意一个继承于Object的「Class」
看上去还是很晦涩,所以就拿String进行举例
class SomeObject extends Object {
T method(Class clazz);
}
SomeObject some = new SomeObject();
Class clazz = some.getClass();
SomeObject someT = some.method(clazz);它的「Class」是「someObject」,它的实例some是一个「Object」
「class SomeObject extends Object」可以被一个「Class类」的实例clazz指向
当method被调用,输入了clazz,返回值就是「someObject」,那么T就是「someObject」这段字符
妈蛋 还是很晦涩。。。。。我也不知道该怎么讲了。。。总之,你感觉感觉。。。
关于「Class」这个概念,就是类这个概念如何产生的,可以看另外一个文章面向对象语言的吹逼
java的class和object_Java中Class/Object/T的关系相关推荐
- java的object_Java中的Object类详细介绍
理论上Object类是所有类的父类,即直接或间接的继承java.lang.Object类.由于所有的类都继承在Object类,因此省略了extends Object关键字. 该类中主要有以下方法: t ...
- 用java代码将从数据库中取出的具有父子关系的数据转成json格式
思路:①.取出数据中的所有父节点放入一个集合中②.取出数据中所有为该父节点的子节点放入另一个集合中③.用到迭代的方法将子节点一层一层的遍历工具类:package com.assasion.test; ...
- java程序设计专业介绍_简介Java编程中的Object类
这篇文章主要介绍了简介Java编程中的Object类,是Java入门学习中的基础知识,需要的朋友可以参考下 Object 类位于 java.lang 包中,是所有 Java 类的祖先,Java 中的每 ...
- thrift如何定义Java中的object类型
目录 thrift如何定义Java中的Object类型 方法一:使用联合(union) 方法二:使用特殊类型(binary) 终极方法:序列化 thrift如何定义Java中的Object类型 由于t ...
- java中父类与子类的关系以及使用
java中父类与子类的关系以及使用 在java中规定:一个父类可以有多个子类,但是一个子类只能有一个父类.子类可以通过extends关键字来继承父类.做个比较通俗的比喻,就像一个父亲可以有多个亲孩子, ...
- Java:判断一个字符串中是否存在另一个字符子串以及判断一个字符串中是否存在指定字符
Java:判断一个字符串中包含指定字符子串,判断一个字符串中存在指定字符 字符串的contains方法可以判断一个字符串中是否存在另一个字符子串,示例如下 String Str = "Hel ...
- java backbone_[Java教程]移动前端开发中的Backbone之一:Backbone中的模型和集合
[Java教程]移动前端开发中的Backbone之一:Backbone中的模型和集合 0 2015-09-24 17:00:04 当我们开发含有大量Javascript的web应用程序时,首先你需要做 ...
- 关于java的集合类,以及HashMap中Set的用法!
來源:http://hi.baidu.com/fyears/blog/item/52329711622e007ccb80c465.html 关于java的集合类,以及HashMap中Set的用法! 2 ...
- 深入理解Java ClassLoader及在 JavaAgent 中的应用
转载自 深入理解Java ClassLoader及在 JavaAgent 中的应用 背景 众所周知, Java 或者其他运行在 JVM(java 虚拟机)上面的程序都需要最终便以为字节码,然后被 ...
最新文章
- 空气球+操作系统,海尔智能家居雄心何在?
- 边缘检测(5)Canny算法
- LeetCode(#26)————删除排序数组中的重复项
- [2018.04.29 T3] 矩阵
- Unity第一人称可视化传送门制作
- element UI日历组件自定义操作设置农历、阳历、节日展示、单日操作
- 《华为研发》阅读 - 16 (矩阵式管理)
- 分析开源三大CMS中WordPress相比Drupal与Joomla是怎样摘取皇冠的
- window7 右下角图标消失解决方法
- 使用PLSQL演示TM锁互斥现象
- 电脑如何共享无线网络wifi给手机、其他电脑
- 学计算机可以买ipad吗,考研党究竟有必要买ipad吗?买、买大个的
- operands could not be broadcast together with remapped shapes
- 数据库与MPP数仓(十五):MPP的架构与选型
- python非线性规划求解_Python之建模规划篇--非线性规划
- 二类分类器构造多类分类器
- rabbitmq-exclusive queue
- 深入浅出地讲解麦克斯韦方程组
- windows 操作系统种类
- 一个月份是第几季度输出