Java 理解类<&燃气轮机;
我遇到了以下代码:Java 理解类<&燃气轮机;,java,android,generics,Java,Android,Generics,我遇到了以下代码: public class RestfulAdage extends Application { @Override public Set<Class<?>> getClasses() { Set<Class<?>> set = new HashSet<Class<?>>(); set.add(Adages.class); return set; } } public类
public class RestfulAdage extends Application {
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> set = new HashSet<Class<?>>();
set.add(Adages.class);
return set;
}
}
public类RestfulAdage扩展了应用程序{
@凌驾
public Set>Set=new HashSet
的意思。它指的是gererics。我建议你读一读。基本上,你只知道在运行时使用什么类型的对象。例如,类可以是整数、字符串,甚至是你定义的类类型
read here
类
指的是未知类型的类。表示法使用的是对可添加到集合中的类的类型没有限制的。例如,以下内容不起作用
Set<Class<String>> set = new HashSet<Class<String>>();
set.add(Adages.class); // type not allowed
Set Set=newhashset();
set.add(Adages.class);//不允许使用类型
来自:
在泛型代码中,被称为通配符的问号(?)表示未知类型。通配符可用于多种情况:作为参数、字段或局部变量的类型;有时作为返回类型(尽管更具体的编程实践更好)。通配符从未用作泛型方法调用、泛型类实例创建或超类型的类型参数
检查链接,您将找到更详尽的文档、示例等。类是一个可参数化的类,因此您可以使用语法类,其中T是一个类型。通过编写类,您可以声明一个可以是任何类型的类对象(?是通配符)。类类型是一个包含关于类的元信息的类型 通过指定泛型类型来引用泛型类型始终是一种好的做法,通过使用类,您遵守这种做法(您知道类是可参数化的),但您并没有将参数限制为具有特定类型 关于泛型和通配符的参考:
关于类对象和反射的参考(用于自我反省的Java语言功能):在通用代码中,被称为通配符的问号(?)表示未知类型。通配符可以在多种情况下使用:作为参数、字段或局部变量的类型;有时作为返回类型通配符永远不会用作泛型方法调用、泛型类实例创建或超类型的类型参数 以下各节将更详细地讨论通配符,包括上界通配符、下界通配符和通配符捕获
更多信息假设您有一组属于不同类型的类,并且您也有不同类的实例。因此,如果您想检查这些实例是否是其中一个类的实例,您可以迭代这些集合并执行以下操作工作。对于这种工作,你最好使用一个完全不受限制的集合:
public boolean checkClasses(SetCheck)那么这是否意味着它可以接受任何类型的对象,比如string、integer、double…等等?set.add(“dd”)失败,并且只接受空值…为什么是空值that@user3134565阅读泛型,而不仅仅是人们告诉你的!你不可能学会简单的方法。你试图添加一个对象的实例,你需要一个类的实例,但如果这是真的,那么为什么失败了:set.add(“hello”)@user3134565-“hello”是字符串实例,不是类实例。您可以放入集合string.class
,但不能放入字符串实例。您还可以放入“hello”.getClass()
好的,我现在明白了,但是这有什么用呢?我的意思是,我想不出这个can u有什么好的用途吗?你可以将任何类型放入集中,但它的类型没有被检查。一个好的例子是依赖项容器,做依赖项注入一般来说,这种事情在你进行元编程时使用。你能解释一下吗请向我提供更多信息有关更多信息: