Java 什么是<;类型>;用爪哇语是什么意思?
我看到过声明、接口和类的类型都是Java 什么是<;类型>;用爪哇语是什么意思?,java,syntax,Java,Syntax,我看到过声明、接口和类的类型都是TYPE 这是什么意思?这是泛型类型。 简单的例子是 List<String> Map<Integer, String> 列表 地图 公共类网格{ 这就是在Java中定义泛型类的方式。Grid是类,E是形式类型参数 如果你真的有兴趣了解它,你会在这里找到一个很好的参考资料-如果不看你到底看到了什么,你就不清楚你在问什么。但是你很可能在Java中看到了泛型 这个想法基本上是为了增强Java中的类型安全性。因此,像List intList
TYPE
这是什么意思?这是泛型类型。
简单的例子是
List<String>
Map<Integer, String>
列表
地图
公共类网格{
这就是在Java中定义泛型类的方式。Grid
是类,E
是形式类型参数
如果你真的有兴趣了解它,你会在这里找到一个很好的参考资料-如果不看你到底看到了什么,你就不清楚你在问什么。但是你很可能在Java中看到了泛型
这个想法基本上是为了增强Java中的类型安全性。因此,像
List intList
这样的声明意味着intList
中包含整数。如果你试图输入一个字符串,它将抛出编译错误。没有证据,我相信你说的是支持
泛型允许抽象类型
在Java5之前,很难提供能够支持多种不同类型对象的类,而不必为每种特定情况编写代码,因此人们通常通过Object
这会导致在运行时做出许多困难的选择,您必须进行运行时检查,以查看是否可以将给定对象强制转换为可用类型…例如
List myIntList = new LinkedList(); // 1
myIntList.add(new Integer(0)); // 2
Integer x = (Integer) myIntList.iterator().next(); // 3
现在,这是相当明显的,但是如果只传递了一个列表
,则必须检查列表中的每个元素的正确性
但现在,我们可以做到这一点
List<Integer> myIntList = new LinkedList<Integer>(); // 1'
myIntList.add(new Integer(0)); // 2'
Integer x = myIntList.iterator().next(); // 3'
或
这允许编译器(和JVM)本质上用concert类型“替换”标记T
(好吧,它比那复杂一点,但这就是神奇之处)
这允许做一些事情,如
... new MyGenericClass<MySuperObject>(new MySuperObject());
... new MyGenericClass<MySuperSuperObject>(new MySuperSuperObject());
…新建MyGenericClass(新建MySuperObject());
…新的MyGenericClass(新的MySuperSuperObject());
并且知道它只会接受我指定的对象类型
通读第一段中的链接,我相信它比我能做得更好;)@MadProgrammer可能是泛型类型??您必须参考它,它是Java的一部分。公共接口GridArrayList getValidAdjacentLocations(Location loc);挑剔:它们是参数化类型(不一定使用有界类型参数)。(可能您的措辞与我的不同)列表
Iterator<? extends Number> itNum;
public class MyGenericClass<T> {...}
public class MyGenericClass<T extends MyBaseObject> {...}
public class MyGenericClass<T extends MyBaseObject> {
private T value;
public MyGenericClass(T value) {
this.value = value;
}
}
... new MyGenericClass<MySuperObject>(new MySuperObject());
... new MyGenericClass<MySuperSuperObject>(new MySuperSuperObject());