java如何获得实现接口的实际类型

问题描述:

如下代码
public class Test {
public static void main(String[] args) {
List list = new ArrayList();
test(list);
}

public static test(List list) {
//我想在此处获得list的实际类型 即ArrayList 请问如何实现
}

}

Class clz = list.getClass(); //获取实际类型 即new谁获取谁的类型
System.out.println(clz);

List list = new ArrayList(); 这是一种多态写法

List list=new ArrayList();
if (list instanceof List) {
System.err.println("List");
}

[code="java"]
package test;

import java.util.ArrayList;
import java.util.List;

public class Test {
public static void main(String[] args) {
List list = new ArrayList();
test(list);
}

  public static void test(List list) { 
      //我想在此处获得list的实际类型 即ArrayList 请问如何实现 
      Class clz = list.getClass();
      System.out.println(clz.getName());

  } 

}

[/code]

打印:java.util.ArrayList