Java:检查变量类型

时间:2018-04-13 21:37:47

标签: java

我正在进行一项任务,我必须对整数和字符串类型变量进行排序。

所以我有一个声明为

的方法
public void quickSort(ArrayList<Entry<Integer, String>> list) {

但如果我想重载方法并使用

public void quickSort(ArrayList<Entry<String, Integer>> list) {

它被认为是重复的。

有没有办法检查我的变量类型是什么? 或者,有没有办法以相同的方式对字符串和整数进行排序,以便我可以执行类似

的操作
public void quickSort(ArrayList<Entry<K, V>> list) {

哪个适用于两种日期类型?

2 个答案:

答案 0 :(得分:2)

您可能需要提供一个明确的比较器,因为Entry s没有自然排序:

public <T> void quickSort(ArrayList<T> list, Comparator<? super T> comparator)

然后在方法中使用comparator进行比较。

您尝试使用两个类型参数(Map.Entry<String, Integer>Map.Entry<Integer, String>)进行排序的事实与泛型视角无关:它只是一种类型,因此您可以用T替换整个事物。

答案 1 :(得分:1)

对您而言,您可以使用instanceof关键字检查变量的数据类型。 E.g。

if (variable instanceof String) { //do stuff }