【问题标题】:what means smaller than and bigger than "<String>" sign after some class in declare? [closed]在声明中的某个类之后小于和大于“<String>”符号是什么意思? [关闭]
【发布时间】:2013-10-26 20:08:01
【问题描述】:

我想知道这些符号及其内部数据类型的真正含义是什么? 看到很多这样的代码:

ArrayAdapter<String> adapter =  new ArrayAdapter<String> ( this, android.R.layout.simple_list_item_1, names );

在 java 和 android 中有很多代码,我认为 c# 使用这种类型的声明对象。我想知道这些声明类型是什么以及主题的用途是什么? 提前致谢。

【问题讨论】:

标签: java android oop


【解决方案1】:

它们声明代码(在本例中为 ArrayAdapter)将持有的对象类型。 Java 中的泛型允许某些代码可能保存任何类型的对象,但一般来说,如果您可以指定您希望代码保存的类型,您应该这样做。以 ArrayList 为例:

Arraylist<String> myList = new ArrayList<String>() //Holds Strings
Arraylist<Integer> myList = new ArrayList<Integer>() //Holds ints
Arraylist<aCustomClass> myList = new ArrayList<aCustomClass>() //Holds objects of a class I made called aCustomClass
Arraylist myList = new ArrayList()  //Is set to recieve any type of object

如果你没有指定你想要什么类型的对象,那么它期望一个“原始类型”,这被认为是不安全/不好的做法。要了解更多信息,请搜索 Java 中的泛型

【讨论】:

  • 我怎样才能创建一个像这样应用泛型的类?
  • Arraylist&lt;int&gt; 无效。
  • @ZouZou 感谢您指出这一点
  • Arraylist&lt;&gt; myList 也无效。
  • 请注意,虽然ArrayList&lt;&gt; myList 不起作用,但现在我们使用Java 7,我们可以做到ArrayList&lt;T&gt; myList = new ArrayList&lt;&gt;(); 甚至ArrayList myList = new ArrayList&lt;&gt;(); 可能想看看stackoverflow.com/questions/4166966/…
【解决方案2】:

&lt;&gt; 用于键入泛型类。一个常见的例子是列表或地图。

所以列表的源代码是这样的:

public class MyList<T> extends List<T> 

然后您可以创建这样的方法:

public void add(T value)

要了解有关泛型的更多信息,您可以在此处查看官方指南:http://docs.oracle.com/javase/tutorial/java/generics/ (java)

【讨论】:

    【解决方案3】:

    假设你想在列表视图中显示数据,这里使用了Array Adapter

    适配器为 ListView 中的每一行扩展布局

    这里 adapter 是 ArrayAdapter 类的对象,用于为每一行扩展布局。 String 定义了具有 String 类型数据的 List。 this 定义对象android.R.layout.simple_list_item_1 的当前状态是系统生成的资源。 name 是定义将在 ListView 中播放的字符串数组

    【讨论】:

    • 我的意思是所有这种类型的声明不仅仅是适配器。
    • 你的意思是我们为什么要使用这行代码...???
    猜你喜欢
    • 2022-01-02
    • 2018-10-22
    • 1970-01-01
    • 2014-05-26
    • 1970-01-01
    • 2019-06-21
    • 2022-11-01
    • 2017-01-09
    • 1970-01-01
    相关资源
    最近更新 更多