`
celsword
  • 浏览: 23876 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

谁进来给解释下public static <T> List<T> toList(T ...args),尤其是<T>

    博客分类:
  • Java
 
阅读更多
import java.util.List;

import javolution.util.FastList;

/**
 * JAVA不定参数
 * 例如 public void test(String ...args){...} 这里test方法可以传入参数的情况是:
 * 	1.不使用参数,如test()
 * 	2.使用一个或多个参数,如test("1"); test("1","2");
 * 	3.使用数组 test(new String[]{"1","2"});
 * 在test方法内部,我们可以像使用数组的访问方式一样来访问参数args.
 * 如:args[i] 这样就有一个好处,在参数输入不定的情况下,使用这个方法非常简单。非常易于使用。
 * 有几点需要注意的就是,我们见到的是不定参数,其实编译器编译之后它会将这个test(String ...args){...} 
 * 编译成为数组调用的方式test(String[] args){} ,这个过程是编译中就完成了的,我们程序编写过程中看不到这个实际的转换过程。  
 * 而我们调用这个test方法时,编译器同样会把参数转换成new String[]{""}的形式调用,
 * 所以,本质上来讲,就是一个以数组为参数的调用方法,我们看不到而已,具体详细情况可以反编译class类就可以明了。
 * 如果同时同一个类中还有一个test方法,例如test(),或者test(String args),
 * 我们采用 test("1")的方式调用,我们就可以知道了,因为有这个方法存在,所以编译器就会优先使用这个 test(String args)方法
 * 而不会使用不定参数的方法,这个原因很明确,因为不定参数本质上是一个数组为参数的方式。
 * 所以,如果你定义了一个不定参数的test方法,如果你再定义一个test(String[] args)的以数组为参数的方法,
 * 编译器就会提示你方法定义重复。道理就在这里
 */
public class TestUn {

	public static <T> List<T> toList(T ...args) {
		List<T> list = FastList.newInstance();

		for (int i = 0; i < args.length; i++) {
			list.add(args[i]);
		}
	    return list;
	}
	
	public static void main(String[] args) {
		List<String> listOne = FastList.newInstance();
		List<? extends Object> listTwo = FastList.newInstance();
		listOne = TestUn.toList("11111", "22222");
		listTwo = TestUn.toList(1, 2, 3, 4);
		System.out.println("listOne======" + listOne);
		System.out.println("listTwo======" + listTwo);
	}
}

分享到:
评论
1 楼 JimmyLincole 2014-11-05  
文不对题!!!

相关推荐

    把excel导入List中行也为list

    public static void main(String[] args) { try { FileInputStream fis = new FileInputStream(new File("path_to_your_excel_file.xlsx")); Workbook workbook = new XSSFWorkbook(fis); Sheet sheet = ...

    Java list转json的jar

    List&lt;String&gt; myList = Arrays.asList("Apple", "Banana", "Cherry"); Gson gson = new Gson(); String jsonString = gson.toJson(myList); System.out.println(jsonString); // 输出:["Apple","Banana",...

    JAVA基础好东西啊快来看看吧

    public static void addToList(List&lt;?&gt; list, Object o) { list.add(o); // 错误 } public static void main(String[] args) { List&lt;String&gt; stringList = new ArrayList&lt;&gt;(); addToList(stringList, "Hello...

    利用接口实现简单排序

    这些方法可能需要返回排序后的数据集合,例如`List&lt;T&gt;`。 ```csharp public interface ISortable { List&lt;Person&gt; SortByNameAsc(); List&lt;Person&gt; SortByNameDesc(); List&lt;Person&gt; SortByAgeAsc(); List&lt;Person&gt;...

    JsonToList参考

    在Java、Python、C#等许多语言中,JSON对象通常可以被解析为相应的数据结构,例如Java中的List或ArrayList,Python中的list,C#中的List&lt;T&gt;等。这个过程通常涉及JSON解析库,例如Java的Jackson、Gson,Python的json...

    由Excel文件的Sheet导出至List

    在IT领域,尤其是在数据分析、数据处理或自动化工作中,经常需要将Excel文件中的数据转换为编程语言可以方便操作的数据结构,例如List。这个过程通常被称为数据导入。本篇将详细讲解如何将Excel文件的Sheet导出至...

    java实现excel导入数据库

    在Java编程中,将Excel数据导入到MySQL数据库是一项常见的任务,尤其在数据处理和分析的场景下。要完成这个过程,我们需要使用特定的库来读取Excel文件,并使用JDBC(Java Database Connectivity)来与MySQL数据库...

    java 导入excel

    public static void insertData(Connection conn, List&lt;List&lt;String&gt;&gt; data) { String sql = "INSERT INTO your_table(column1, column2, ...) VALUES (?, ?, ...)"; try (PreparedStatement pstmt = conn....

    java poi对于excel的读写与反射的结合使用

    public static &lt;T&gt; void writeExcel(List&lt;T&gt; dataList, Class&lt;T&gt; clazz, String outputPath) throws Exception { // 使用反射获取对象的属性,然后使用Java POI将数据写入Excel } } ``` 在这个例子中,`read...

    使用xstream进行java类与xml文件互转解析--代码

    public static void main(String[] args) { XStream xstream = new XStream(); Person person = new Person(); person.setName("张三"); person.setAge(30); String xml = xstream.toXML(person); System....

    Java定义泛型方法实例分析

    public static &lt;T&gt; void test(Collection&lt;T&gt; from, Collection&lt;T&gt; to) { for (T ele : from) { to.add(ele); } } ``` 五、正确使用泛型方法 在使用泛型方法时,需要正确地传递参数类型。例如,在下面的代码中,...

    C#基础教程之IComparable用法,实现List&lt;T&gt;.sort()排序

    lstPerson = lstPerson.OrderBy(p =&gt; p.Name).ThenBy(p =&gt; p.Age).ToList(); ``` 这段代码将创建一个新的已排序的 `List&lt;Person&gt;`,首先按姓名排序,如果姓名相同则按年龄排序。这种方法在类不需要排序能力的情况下...

    SpringBoot+MybatisPlus实现联表分页查询

    public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 同时,在`application.properties`或`application.yml`中添加MybatisPlus的基本配置: ```properties # ...

    xml Document to Json

    public static void main(String[] args) throws Exception { String xmlString = "&lt;root&gt;&lt;item id='1'&gt;Item 1&lt;/item&gt;&lt;item id='2'&gt;Item 2&lt;/item&gt;&lt;/root&gt;"; ObjectMapper jsonMapper = new ObjectMapper(); ...

    Springboot集成MyBatis自动生成代码工具源码

    List&lt;String&gt; warnings = new ArrayList&lt;&gt;(); boolean overwrite = true; InputStream in = MyBatisGeneratorMain.class.getResourceAsStream("/generatorConfig.xml"); ConfigurationParser cp = new ...

    Map to List

    public static void main(String[] args) { Map&lt;String, String&gt; map = new HashMap&lt;&gt;(); // 初始化Map... // 将Map的键转换为List List&lt;String&gt; keysList = map.keySet().stream().collect(Collectors.to...

    xmappr解析XML适用例子

    public static void main(String[] args) throws IOException { String xmlContent = Files.readString(Path.of("library.xml")); // 读取XML文件内容 Library library = Xmappr.fromXml(xmlContent, Library....

    文件导入程序-java

    public static void main(String[] args) { try (FileInputStream fis = new FileInputStream(new File("path_to_your_excel_file.xlsx"))) { Workbook workbook = new XSSFWorkbook(fis); Sheet sheet = ...

    java 求一个有向图中的环路问题

    System.out.println("环路: " + loop.stream().map(Node::id).collect(Collectors.toList())); } } ``` 这段代码将输出所有找到的环路。在这个例子中,输出应为`环路: [2, 3, 4, 2]`,因为它代表了节点2到节点4再...

Global site tag (gtag.js) - Google Analytics